Q: Daten suchen und Kopieren



  • 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



  • Noctis schrieb:

    Das wäre matürlich ne lösung.

    D'oh.



  • 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


Anmelden zum Antworten