String kürzen mit Schleifen



  • Hi, leider muss ich euch erneut um euren kostbaren Rat fragen 😋 .
    Ich habe versucht eine Pfadangabe bis zu einem " \ " zu kürzen, jedoch bleibt mein Programm bei folgendem Teil immer stehen:

    //Variablenbelegung   
    //"savepath" beinhaltet den Speicherpfad, z.b. : C:\Programme\saves\save.sep
    
    sepdir = savepath;
    char *puffer = sepdir.AnsiLastChar();
    
    //Schleife in der jedesmal ein zeichen entfernt werden soll
    do
    {
    sepdir = sepdir.SetLength(sepdir.Length()-1);
    puffer = sepdir.AnsiLastChar();
    }
    while (puffer!="\\");
    
    }
    //Eintrag in ein TEdit
    sepdiredit->Text = sepdir;
    

    Mache ich vielleicht schon bei der char* deklaration etwas falsch?
    Vielleicht fehlen mir ja auch hier die Grunddinge ^^.

    Danke im Voraus,

    MfG



  • Hallo

    Statt dem char/AnsiString-Rumgemurkse solltest du besser gleich die passenden AnsiString-Methoden benutzen (Siehe BCB-Hilfe zu AnsiString).
    Allerdings reicht in deinem Fall auch einfach die Funktion ExtractFilePath.

    bis bald
    akari



  • Hallo, das mit der Schleife ist wirklich unnötig. Entweder machst du es wie akari gesagt hat oder:

    int k = sepdir.LastDelimiter("\\");
     sepdir.Delete(k+1, (spedir.Length() - k));
    


  • /Edit : Keine Sinnlosposts bitte


Anmelden zum Antworten