Q: Daten suchen und Kopieren
-
Hmm? Was ist denn
?
-
Noctis: du weisst nicht was rekursion ist. informiere dich ueber rekursion.
-
ja, ne funktion die sich selbst aufruft. Die aber jederzeit gestoppt werden kann
habs jetzt zum teil. allerdings ohne Rekursion. Mach mit dem "system" Befehl eine "verzeichnisdatei" und les diese wieder aus. So hab ich gleichzeitig ein protokoll und kann nicht gewünschte pfade einfach aus der txt datei löschen.
main() { system("dir E:\\CAE\\ /ad /b /l /s > E:\\CAE\\Verzeichnisse.txt"); //erstellen }
wie kann ich dieser funktion sagen, dass das verzeichnis dynamisch ist und nicht wie jetzt statisch?
Also mit 'defines' oder 'scanfs'greetings
-
ich verstehe nicht.
wenn du einen string neu aufbauen willst, guck dir sprinf an.
-
nein, hassu falsch verstanden, oder ich falsch beschrieben.
Ich such ne möglichkeit in den system befehl variablen einzubauen. Allerdings denk ich nicht, das das geht.
In diesem fall will ich ne ini schreiben in der das zielverzeichnis (oben: E:\...) steht.wie könnt ich sowas realisieren?
greets
-
mit sprintf
-
beispiel?
Mit sprintf tuh ich doch was in nen string schreiben/ Kopieren. Ich will allerdings das zeug in den system befehl rein schreiben.
Oder meinst du, den gesammten inhalt in nen string zu schreiben? Das wäre matürlich ne lösung.Greets
-
-
kann es sein, dass wir aneinander vorbeischreiben? Das mit dem string kopieren/ in einen string schreiben wusst ich schon, die frage ist, wie ich das in den system befehl einbinden kann.
also:
system("dir/s >list.txt")
wird zu
system("%s",strin1)???greets
-
Bitte tu DIR und UNS den Gefallen und lern C.
-
char foo[100];
sprintf(foo, "yadda %s yadda %d", "lol", 42);
system(foo);Noctis, *wirklich*, erst lernen und dann frickeln.
http://www.pronix.de/pronix-4.html
-
cool, dass man hier von unregistrierten benutzern so nett empfangen wird.
War zumindes aus meiner sicht ne ganz normale frage. Das mit dem "du kannst nen string in den system befehl schreiben" wusst ich net.
Steht auch nicht in dem Bibliotheksbuch vom Borland.aber danke @c.rackwitz
-
Noctis schrieb:
"du kannst nen string in den system befehl schreiben"
ist auch falsch.
du rufst eine funktion mit einem string als argument auf. ob der nun eine konstante oder vorher mit sprintf befuellt ist, ist irrelevant fuer system().gib das buch zurueck; es taugt offensichtlich nichts und bringt dir veraltete sprache bei.
sieh dir das an: http://www.pronix.de/pronix-4.html
-
@Noctis: hm, nachdem das ganze nach windows user riecht...
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <direct.h> #include <windows.h> inline bool getCwd( char **ppcDest ); bool runThrough( char *pcDir ); int main( int argc, char *argv[] ) { char *cwd = NULL; if( !getCwd( &cwd ) ) { cprintf( "Couldn't determine current working directory!\r\n" ); getch(); return -1; } cprintf( "%s\r\n", cwd ); // begin our cracy run ;) runThrough( cwd ); free( cwd ); return 0; } inline bool getCwd( char **ppcDest ) { return ( *ppcDest = _getdcwd( _getdrive(), NULL, 0 ) ) != NULL; } bool runThrough( char *pcDir ) { char *pcFindPattern = (char*) malloc( strlen(pcDir) + 3 ); if( !pcFindPattern ) return false; sprintf( pcFindPattern, "%s\\*", pcDir ); WIN32_FIND_DATA findData; HANDLE hFind = FindFirstFile( pcFindPattern, &findData ); free( pcFindPattern ); if( hFind == INVALID_HANDLE_VALUE ) return false; do { cprintf( "%s\r\n", findData.cFileName ); if( findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) { if( strncmp( findData.cFileName, ".", strlen(findData.cFileName) ) != 0 && strncmp( findData.cFileName, "..", strlen(findData.cFileName) ) ) { char *pcSubDir = (char*) malloc( strlen(pcDir) + strlen(findData.cFileName) + 2 ); if( !pcSubDir ) { FindClose( hFind ); return false; } sprintf( pcSubDir, "%s\\%s", pcDir, findData.cFileName ); runThrough( pcSubDir ); free( pcSubDir ); } } } while( FindNextFile( hFind, &findData ) ); FindClose( hFind ); }
aber bitte, um himmelswillen, google mal nach rekursion
@ others: Könnt' das mal einer lesen, der Ahnung hat? Hab' schon ziemlich lange nix mehr proggt -> gebt euren Senf dazu
greetz, neox86