Dateiname aus Pfad holen



  • Hi.

    Wie kann ich aus einem String, in dem ein Dateiname mit Pfad gespeichert ist, nur den Dateinamen rauskopieren und in einen neuen String speichern?

    Also ich hab z.B.:
    String pfad = "C:\\Bla\\Blub.txt";

    und ich will eine zweite String-Variable haben, die so aussieht:
    String ergebnis = "Blub.txt";

    Kann mir jemand auch bitte ein Quellcode-Beispiel geben? Ich kenn die ganzen Befehle nämlich nicht so genau...



  • wenn du die string methoden(in c++ gibts keine befehle) nicht kennst, sollteste nochmal von vorne anfagnen.
    kleiner tipp:
    nach dem letzten "\" kommt immer der dateiname 😉



  • string::find_last_of("\");
    string::substr(...);

    Devil



  • devil81 schrieb:

    string::find_last_of("\");
    string::substr(...);

    Devil

    Danke, aber mein Compiler (Borland C++ Builder 1) gibt folgenden Fehler dabei aus: "'find_last_of' is not a member of 'System::AnsiString'."

    Warscheinlich handelt es sich um zwei verschiedene String-Klassen. Gibt es für die Borland-Strings ähnliche Methoden?



  • Du bist (a) im C++-Forum (-> keine AnsiStrings) und (b) hat devil81 nix von AnsiStrings geschrieben, sondern von strings. Ich denke, du lässt dich besser verschieben.



  • Ok, dann sollte man meinen Thread wohl wirklich verschieben. Hab nicht gewusst, dass es so viele verschiedene String-Typen gibt.



  • Ich will dir mal helfen, ich bin ja nicht so. Das funktioniert bei NULL-terminierten Strings ganz einfach mit der Funktion strtok (einfach mal in der MSDN nachschauen)

    #include <string.h>
    #include <stdio.h>
    
    int main() 
    { 
        char buffer[128], szFilename[128];
        char szTrennzeichen[]   = "\\";
        char *token;
    
        sprintf(buffer, "C:\\Bla\\Blub.txt");
    
        token = strtok(buffer, szTrennzeichen);
    
        while( token != NULL )
        {
            strcpy(szFilename, token);
            token = strtok( NULL, szTrennzeichen);
        }
    
        puts(szFilename);
    
        return 0;
    
    }
    

    Ausgabe ist dann:

    Blub.txt
    

    mfg


Anmelden zum Antworten