PDA

Tam Sürümünü Görmek İçin : Dir Prosedürü


ScHiZoO
29/05/2007, 17:30
C DE DİZİN İÇİNDEKİ DOSYA VE DİZİN LİSTESİNİ DÖNDÜREN
FONKSİYON YADA MAKRO VARMI

şimdiden tşk


acehreli
29/05/2007, 17:51
ScHiZoO, Kucuk harfler daha kolay okunuyor... :)

C'de boyle bir olanak yok ama her ortamda bir cozum var. Win32'de soyle bir ornek program var:

http://msdn2.microsoft.com/en-us/library/aa365200.aspx

Ali

kiyas
29/05/2007, 18:11
tam hatırlamıyom ama system("ls"); ile alabiliyordun linuxta sanırım.
windows için bu makale işini görür kolay gele...
http://www.csharpnedir.com/makalegoster.asp?MId=4

ScHiZoO
29/05/2007, 18:18
eyvallah hocam cok tesekkurler msdn de baya bi örnek warmış .unix için shell yazmayı deniyodumda ,mesela aşşada dosya silmek için bişey yazdım. buna benzer bi listeleme fonksiyonu olsa daha ii olcaktı (dir yazdıgımda dosyaları ekrana bascaktı). ama lib kullanmam gerekiyomuş bunu library kullanmadan yapabilirmiyim dedim ama biras zor geldi . <lib.h> kaçınılmaz zaten


#include<stdio.h>//burdaki gibi:D
char dosyaad[300];

int main ()
{


gets(dosyaad);
remove(dosyaad);


return 0;
}

yahu bu siteyi cok seviyorum ya burayı kullanan herkez paylaşmayı seven insanlar ,daha soruyu soralım 10 dk olmadan birisi(acehreli gibi) yarmıma koşuyo bende biras seviyemi geliştirince cvp vermek için zaman ayırıcam buraya vede tabeki küçük harflerleyazmaya calışcam:D teşekkurler saolun varolun

bide daha ben teşşekkur yazarken kiyasda bişeyler yollamış saolun walla hemen denicem

ScHiZoO
29/05/2007, 19:05
system("ls"); ye parametre eklemek mumkunmu acaba mesela ada tarihe yada boyuta göre diz gibi

kiyas
29/05/2007, 19:53
system("ls -l"); şeklinde parametre verebilirsin diye hatırlıyorum ama listeleme işlemini ada veya tarihe göre nasıl yapılır hangi parametre verilir onu bilmiyorum linux kısmında sorsan daha cabuk cevap gelir sanırım kolay gele...

ls [!a-zA-Z]* :İlk karakteri büyük veya küçük harf olmayan dosyaları listeler.
bu sekilde yapılıyorsa senin istediğinde vardır sanırım.
http://www.belgeler.linux-sevenler.org/index.php?action=artikel&cat=29&id=92&artlang=tr

Farslan
29/05/2007, 20:00
ls hakkında daha fazla bilgi man sayfasından da bulabilirsin

man ls

ya da

ls --help

kiyas
29/05/2007, 20:14
-t dersen zamana göre diziyormuş default olarak ada göre zaten bende arkadasa sordum kolay gelsin...

ayrıntılı bilgi için...
http://www.hmug.org/man/1/ls.php

ScHiZoO
30/05/2007, 02:59
cook teşekkurler arkadaşlar walla hızır gibisiniz

(bu arada komik bi hatıram war bu hızır hakkında onu anlatmak geldi içimden belki ufak bi tebessum için ;universitenin içinden gecen ıssız bi yol war .bu yolda baya bi yaya araç ilişkisi kuruluyo kazalar baya ciddi yani [bide ezilen kesin ölsün die asvalt yaptılar ,milletin hız merakı tamda tahmin ettiniz gibi] ,herneyse bir gun karşıya geccem benden biras öndede bi kız geciyo hoşda bi kız hani arabanın tekide kaptırmış geliyo .baktım kız etrafına bakmadan kafa önde gecio karşıya "hey bakarmısın" die bağırdım arabada yakın sayılır tabe. kız durdu bana baktı ,araba gecti[300 km ile gidiyodu :P] ,sonra tek kelime etmeden yurumeye dewam etti .sonra bende bi teşekkur fln bekliyom tabe ama aynen yurumeye dewam belki durumun farkında değildir bu durumdan ne cıkarıcanı kafası basmamıştır die dusundum işime baktım.sonra aklıma takıldı hani hoşduya ,millete bahsettim böle böle bi kız die tanıyan eden warmı die kimse bilmiyo kızı bidaha da etrafta hiçgörmedim onu. o kızın hızır olmasından supheleniyorum bi dahada karşılaşmadık. tabe bende biras göt olmuş gibi bi his uyandı kız farkındadır arabanın gececeğinden die neyse allah kazasız belasız gunler versin hepimize)(-bitanede pogoda oldu buna benzer bişey kızın teki ayaklar altında eziliyo tuttum cıkardım yuzume bile bakmadan cıktı gitti amaan neyse kızlarda biras gec basıyo sanırsam bu kadar gec basıyosada bırakim ezilsinde diyemiyorum takılın)

ScHiZoO
30/05/2007, 06:24
:utangac:cok fazla sorunum war farkındayım ama yardımcı olursanız sevinirim:garip:

system("cp"); (kopyala komutu)
yi de shellde kullanmak istedim ama parametre lerde sorun cıktı system(" "); bunun içine değişken cagıramadım

linuxda cpnin kullanımı şöle

cp kopyalanılacak_dosya kopyalanacagı_dizin

aşşadaki code
1 "filelist all" komutu dosyaların ve dizinlerin tamamını listeler
2 "clean" komutu ile ekranı temizler
3 "what is time" komutu ile tarih ve saati ekrana basar
4 "copy kopyalanılacak_dosya kopyalanacagı_dizin" kopyalama işini şu anda yapamadım :(



#include<stdio.h>
#include<string.h>
char komut[1000];
char ayirac[2]={' '};
char *command;
char *parametre1;
char *parametre2;

int main(void)
{
do
{

printf("Command> ");
gets(komut);
command=strtok(komut,ayirac);
parametre1 = strtok(NULL,ayirac);
parametre2 = strtok(NULL,ayirac);

printf("command=%s",command);
printf("parametre:::1=%s",parametre1);
printf("parametre:::2=%s",parametre2);

if(strcmp(command,"filelist all")==0)
{
system("ls -a");
}
else if(strcmp(command,"clean")==0)
{
system("clear");
}
else if(strcmp(command,"what is time")==0)
{
system("date");
}
else if(strcmp(command,"copy")==0)
{
system("cp <parametre1> <parametre2>"); /* buraya dikkat plz */
}




}while(komut[0]!='q' || komut[1]!='u' || komut[2]!='i' || komut[3]!='t');
return 0;
} :confused: :uyku: :none: :mad: :utangac:

ScHiZoO
30/05/2007, 06:25
system("cp %s %s",parametre1,parametre2);
denedim ama oda işe yaramadı

golgepapaz
30/05/2007, 08:42
char str[80];
strcpy (str,"cp ");
strcat (str,parametre1);
strcat(str," ");//boslukta koyalim
strcat (str,parametre2);

bu sekilde dogru stringi olusturabilirsin.....

ayrica sondaki quit'i kontrol etme cirkin olmus, strcmp fonksiyonunu kullanmak daha mantikli...

ortug
30/05/2007, 08:49
sprintf fonksiyonunu kullanmak daha uygun. fonksiyon mantığı printf ile aynı, ama yazıyı std çıkışa değil; string'e basıyor.
http://www.cplusplus.com/reference/clibrary/cstdio/sprintf.html