folder Tahribat.com Forumları
linefolder C - C++
linefolder Acil C De Bi Fonksiyon Gerekli(Yapabilen Yada Bulabilen Cıkarsa Cok Makbule Gecek)



Acil C De Bi Fonksiyon Gerekli(Yapabilen Yada Bulabilen Cıkarsa Cok Makbule Gecek)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FeNCeR
    FeNCeR's avatar
    Kayıt Tarihi: 23/Eylül/2006
    Erkek

    adı klavyeden  girilen bir klasör içinde dosya aratma(mesala jpg uzantılı olanları bulmamızı saglasın) ve de bu dosyaların adını değiştirmek???

     


    ATAM, hedefimiz sana layık olabilmektir!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    THT2005
    THT2005's avatar
    Kayıt Tarihi: 08/Eylül/2005
    Erkek
    anlamadım dostum ne demek istiyon.. şifresiz söle :)

    Burası Türkiye... Yaşanacak , Yaşanmış , Yaşanan olayların hepsi normaldir.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FeNCeR
    FeNCeR's avatar
    Kayıt Tarihi: 23/Eylül/2006
    Erkek

     :)

    olay şuki, mesala program files ta resimler diye kayıtlı bi klasör var, bu klasörün içinde bir sürü dosya var.

    ben bunlardan jpg uzantılı olanları bulcam ve  adlarını değiştircem...

    mesala

    klasörün içinde ertt.jpg - dfsdf.txt - fdd.jpg - ... diye bi sürü dosya var. bunların arasından jpg uzantlı olanları bulcam ve resim001.jpg - resim002.jpg gibi yapmam lazım.

    yanlis anlama olmasın ben hammallıktaan kacmıyorum, strcpy flan flan yada klasörü acma okutma(w,r,a), farklı bir kopyasını yaratmayı flan  biliyorum sadece klasördeki dosyaları taratma ve bunların adını nasıl değiştirceğim bu sorun??? zaten bu kısım ödevin cok küçük bi kısmı o kadar...

    yardımcı olabilirseniz cok sevinirim 


    ATAM, hedefimiz sana layık olabilmektir!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pompaci
    pompaci's avatar
    Kayıt Tarihi: 09/Haziran/2007
    Erkek

    arama seçeneklerindeki dosya türünü değiştirdiğinde olur sanırsam.

    not: yanlış anlamadıysam 


    hayat boş pompala çoşşş :):)...
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FeNCeR
    FeNCeR's avatar
    Kayıt Tarihi: 23/Eylül/2006
    Erkek

    bu dediklerim c de yazdıgım program yapıcak :)

    C:\Wsc301.jpgOkuldaki.jpgRes1.jpgArkadaslar.jpgBeraber.jpgAli1.jpgAli2.jpgProgram çalıştıktan sonra klasör içindeki dosyalarınisimleri aşağıdaki gibi olacaktır.C:\end000.jpgend001.jpgend002.jpgend003.jpgend004.jpgend005.jpg

    end006.jpg

     

    dosya acmayı, yazırmayı sunu bunu biliyorum ama soru su; 

    klasördeki jpg uzantılı dosyaları nasıl buldurcam ve bu dosyaların adını nasıl değiştircem?? sadece  bi tanesini nasıl yapcagımı söleyin siz, ben döngü kurdurur hepsini yaptırırım... 

     

     


    ATAM, hedefimiz sana layık olabilmektir!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek
    FeNCeR bunu yazdı:
    -----------------------------

    adı klavyeden girilen bir klasör içinde dosya aratma(mesala jpg uzantılı olanları bulmamızı saglasın) ve de bu dosyaların adını değiştirmek???

     


    -----------------------------

     

    bak simdi kardes , tam olarak dosya handle etmeyi bilmiyorum belki c ile asembly kullanarak yapilir viruslerin mantigi ile fakat suan farkli bilgim yok.

    aklima gelen basit yontemi soyleyim sana  ac bir  cmd  msdos shell.

    "cd %systemroot%"    yazinca  C:\WINDOWS  a dusmen lazim  simdi senin yazindan sonra ben burda denedim.

    daha sonra  ikinci olarak    "dir *.bmp"   komutunu yap  yani  uzantisi .bmp olan ismi ne olursa olsun ekrana bastir demek  ben windows klasorunde denedigim icin bmp ler var sadece windowsta sen  jpg yapabilirsin.  simdi ekranina istedigin uzantida dosyalar geldi diymi ,degistirmek istediklerin yani.

    bunlari C ayri olarak handle etmeyi bilmiyorum malesef python da kolay bir yolu vardi fakat neyse C ye donelim... yine bir komut vericeksin dos shell e

    "dir *bmp > istedigindosya.txt"    bu komut ise    diger komuttaki gibi ayni fakat ciktiyi istedigin dosyaya yonlendiriyosun. >> koyarsan var olan bir dosya ise sonuna ekler gelenleri , >  yaparsan oyle bir dosya var ise bile sifirlar kendisini yazar. buraya kadar hersey tamam diymi :) simdi sira geliyor senin C bilgine ve agoritmalarina..elimizde ne var suan mesela ? istedigin uzantiya sahip olan programlarin detayli bir listesi :) napicaksin sonra  rastgele erisimli dosya stream lerle ulasip dosya isimlerini alcaksin yada dosyanin icini incele bosluklardan sonra geliyor galiba isimler tam bilmiyorumda strtok strstr biselerde handle edip bulmaya calis sonra gerisi kolay :)   yine buldugun isimlere komut vericeksin  "rename almisoldugunisim.bmp yeniisim.bmp"  boylece

    shell e bu komutu verip isimlerini degistiriceksin isteigin uzantili dosyalarin.

    C de shell e komut yollamak icin  stdlib.h  da bulunuyodu galiba  system(" shell komutun ");  boyle vericeksin

    ornek

     

    system("cd C:\istedigin_klasor");
    system("dir *jpg  >  kayitlar.txt");

    FILE *ptr = open("kayitlar.txt","r");

     

    gibi yapip dosya isimlerini tek tek alip  bir char poiğnter arrayle tutabilirsin  link listle tutabilirsin neyse sonra

    system("rename dosyadan_okudugun_dosya.jpg yeni_dosya_ismi.jpg");

     

    yaparak handle edebilirsin istedigin seyleri , neyse umarim yardimci olmusumdur kardesim :(  

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    Kardesim simdi bidaha baktim arastirdim benim ilgimi ceken ve unuttugum bir konuydu simdi sana daha net aciklayabilirim.

    MsDoS shell icin   => "dir /B *.jpg > sonuc.txt"   yapicaksin   sadece dosya isimleri  sonuc.txt adli dosyaya yerlesicek.

    Linux te calistigim icin umarim sende oylesindir => "ls *.jpg > sonuc.txt"   sonuc adli  yere dosya isimleri gelicek linuxta uzanti koymasanda olur sonuc a

    simdi yapman gereken FILE *ptr = fopen("sonuc","r");  yada sonuc.txt herneyse dosyadan her satiri okuyup dosya ismini alicaksin ok 

    Eklicegin headerlar => stdio.h stdlib.h unistd.h   ok ? simdi kodlama kisminda

    char dosya_yolu[buraya_isletim_sisteminin_alabilecegi_en_fazla_uzunluktaki_path_sayisi];  boylece elinde dosya nin uzantisini tutucak bir char in oldu ok?

    char dosya_ismi[256]; 

    char suanki_calistigimiz_dizin[buyuk_bir_sey_yaz];     buraya current_directory yani o anda bulundugun klasoru uzantiyi alirsin onuda yine

    MsDos shell icin => "chdir > dizin.txt"  yaparsin  dizin.txt dosyasinida okuyup   gelenleri => suanki_yol  a koy ok ?

    Linux icin => "pwd > dizin.txt"  

     

    sonuc  un icinden okuyup aldiklarini ise  dosya_ismi[]  ne yerlestirceksin  

    yani ornek verirsem

    sonuc.txt  in icinde  =>   "spark.jpg"  var

    dizin.txt in icinde  => "C:\Documents and Settings\spark"    var.. bunlari  birlestirceksin  strcat ile birde aralarina  \  koyarak linuxtaise /

    strcat(dosya_yolu,sunki_calistigimiz_dizin);

    strcat(dosya_yolu,'\');

    strcat(dosya_yolu,dosya_ismi);

    bundan sonra elimizde =>  "C:\Document and Settings\spark\spark.jpg"  oldu diymi guzel kardesim :) geriside fonksiyonlara kaldi

     

    #include <stdio.h>

    #include <stdlib.h>

    #include <unistd.h>

    extern int  remove();

    extern int rename();

     

    extern kelimesi baska dosyalardan aktar demek birseyi tahmin ettigin gibi unistd nin icinde yada stdlib in icinde bu fonksiyonlar kendi dosyamiza extern yapiyoruz.

    simdi geldi bu 2 fonksiyonunu kullanilmasina.

     

    int remove(const char *path);      remove(dosya_yolu); yaptiginda uzantidaki dosya silincek
    int rename(const char *old, const char *new);   rename(dosya_yolu,senin_secegin_ismin_tamamiyla_yolu); yaptiginda degistirceksin dosyanin ismini :)
     
    int unlink(cons char *path) bu ise icine koydugun yoldaki dosyayi ve tamemen yolu siliyor cok tehlikelidir bu unlink fonksiyonu dikkatini cekerim :)
    biliyosun masa ustunde gordugun her obje aslinda hard diskte bir yere link eden bir dosya gibi linkler var dataya unlink ise bunlari direk kaldiran tehlikeli birsey :)
     
     neyse herseyi acikladim umarim halledersin , linux kullanicisi isen gercekten cok harika inanilmaz seyler fonksiyonlar bulabilirsin inanilmaz deryalara girebilirsin :)
    neyse kolay gelsin. 

     

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FeNCeR
    FeNCeR's avatar
    Kayıt Tarihi: 23/Eylül/2006
    Erkek

    cok teşekkür ederim kardeş acıkcası ummuyodum böle güzel bi cevap bulabilceğimi,

    kendi laptop um yok babamınkinde de windows var ama hiç öenmli değil sen bu kdar yazmıssın gerisini bana kalmıs ve hakkını vercem :) (hatta istersen ödevimi bitirince kodunu yollarım sana :p)

    tekrar teşekkür ederim iyi akşamlar...


    ATAM, hedefimiz sana layık olabilmektir!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek
    FeNCeR bunu yazdı:
    -----------------------------

    cok teşekkür ederim kardeş acıkcası ummuyodum böle güzel bi cevap bulabilceğimi,

    kendi laptop um yok babamınkinde de windows var ama hiç öenmli değil sen bu kdar yazmıssın gerisini bana kalmıs ve hakkını vercem :) (hatta istersen ödevimi bitirince kodunu yollarım sana :p)

    tekrar teşekkür ederim iyi akşamlar...


    -----------------------------

     

    eyvallah kardesim gercekten onemli degil , seve seve arastirdim buldum yaptim vallahi cunku gercekten guzel ve hos konular.

    kodlarida isterim ha :P implemantation i gormus olurum :)   mr.spark@gmail.com im mailim hemde msn adresim istersen eklersin konusuruz programlama hakkinda tartisiriz yardimlasiriz :) neyse kolay gelsin... 

Toplam Hit: 2327 Toplam Mesaj: 9