back.and.forth Δημοσ. 17 Ιουλίου 2007 Δημοσ. 17 Ιουλίου 2007 geia sas 8a i8ela na rotiso : ston kodika mou dino san orismata merika arxeia apo to ka8e arxeio pairno to file descriptor tou k ta apo8ikeuo se vector< char * > pou sti sunexeia xrisimopoio to parapano vector, ta kano parsing k.lp. alla 8a i8ela na kano pio mikri tin entoli ektelesis tou programmatos : diladi, na min prosdiorizo ta 3,4,5,.. osa arxeia prokeitai ka8e fora alla na dino mono to path kai na vriskei mesa sto dedomeno fakelo to pli8os ton arxeion k na pairnei to file descriptor tou ka8e arxeiou k na tous apo8ikeuo sto parapano vector k.lp. mipos 3erei kaneis pos mporo na to kano auto ?
bilco Δημοσ. 17 Ιουλίου 2007 Δημοσ. 17 Ιουλίου 2007 Δεν υπάρχει ANSI τρόπος γι αυτή τη δουλειά. Ή από το API του OS σου ή με μη-ANSI που μπορεί να έχει ο compiler που χρησιμοποιείς. Για windows πρέπει να χρησιμοποιήσεις τις FindFirstFile και FindNextFile.
back.and.forth Δημοσ. 17 Ιουλίου 2007 Μέλος Δημοσ. 17 Ιουλίου 2007 e tora, de mou fainetai upervolikos o tropos pou antimetoizan to idio 8ema ki alloi apo oti epsa3a :oops: , se euxaristo
dop Δημοσ. 18 Ιουλίου 2007 Δημοσ. 18 Ιουλίου 2007 Άμα θες κάτι portable θα σου έλεγα να κοιτάξεις το http://www.boost.org/libs/filesystem/doc/index.htm
Directx Δημοσ. 18 Ιουλίου 2007 Δημοσ. 18 Ιουλίου 2007 Δεν γνωρίζω με ποιον C++ Compiler δουλεύεις όμως στην CodeGear Turbo C++ μπορείς να περάσεις σχεδόν αυτόματα τα αρχεία ενός καταλόγου με την βοήθεια wildcards ως παραμέτρων εκκίνησης της εφαρμογής όπως, πχ. myprog *.exe ώστε οι argc και argv να περιλαμβάνουν για παράδειγμα όλα τα “exe” αρχεία του καταλόγου κτλ. Αυτό για να το πετύχεις σε CodeGear Turbo C++ πρέπει να κάνεις link το πρόγραμμα σου με την βιβλιοθήκη wildargs.obj (πχ. “bcc32 myprog.c wildargs.obj”). Μπορεί στο δικό σου περιβάλλον αυτή η δυνατότητα να είναι ενσωματωμένη στην C RTL, μπορεί όπως στην περίπτωση της CodeGear C++ όχι –δες για wildcard support στο argc/argv. Άλλη απλούστερη λύση από αυτήν δεν γνωρίζω.. –μετά πάμε σε File System API.. Ο τρόπος που δουλεύει είναι ο παρακάτω: > #include <stdio.h> int main(int argc,char *argv[]) { int nArgcIdx; for(nArgcIdx=1;nArgcIdx<argc;nArgcIdx++) printf(" %d = %s\n",nArgcIdx,argv[nArgcIdx]); return 1; } Όπως καταλαβαίνεις το wildargs.obj απλά φορτώνει, με βάση τα wildcards που ορίζεις, στο argv όλα τα αρχεία που ταιριάζουν μαζί τους και στο argc τον συνολικό αριθμό τους. Καλή συνέχεια..
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.