String Problem



  • Hallo!

    Ich möchte gerne eine Datei schreiben und habe den Dateinamen mit Verzeichnis und Laufwerk, der sehr variabel sein kann (wird aus einer anderen Datei ausgelesen).

    char Dateiname[MAX_PATH] = "C:\\Programme\\Beispiel\\datei.dat";
    

    Damit das aber funktioniert (CreateFile) muss das Verzeichnis bestehen. Das sollte ja mit CreateDirectory kein Problem sein.
    Jedoch bekomm ich es nicht hin den Dateinamen (datei.dat) von Verzeichnis (C:\\Programme\Beispiel\) zu trennen.

    Bis jetzt hab ich folgendes gemacht:

    char *ptrToFileName = strrchr(Dateiname, '\\'); //sucht den letzten backslash
    

    Jetzt weiß ich wo der Dateiname anfängt und das Verzeichnis aufhört. Wenn ich jetzt jedoch einfach eine \0 mit strcpy anhänge stürzt das Programm ab.

    Wie kann ich das Problem lösen?

    Danke für die tolle Hilfe hier im Forum!
    atzplzw



  • char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];
    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];
    _splitpath( "c:\\hallo\\test\\test2.txt", drive, dir, fname, ext );

    alles klar



  • *ptrToFileName = 0;
    // oder falls du den Backslash am Ende noch haben willst
    *(ptrToFileName+1) = 0;
    


  • Danke!!!

    Bin voll happy das es jetzt funktioniert! 🙂

    atzplzw


Anmelden zum Antworten