"\" durch "\\" ersetzen



  • Ich habe einen Pfad mit normalen Schrägstrichen.
    Jetzt will ich ein aber im besagten Pfad ein Bitmap speichern.
    Jetzt muss ich alle "\" durch "\\" ersetzen.
    Dazu habe ich mir folgende funktion geschrieben:

    String __fastcall TForm1::ersetzen(String Text, String Such, String Ersetz)
    {
    int  position;
    position = Text.Pos(Such);
    while(position > 0)
    {
     Text = Text.Delete(position, Ersetz.Length());
     Text = Text.Insert(Ersetz, position);
     position = Text.Pos(Such);
    }
    return Text;
    }
    

    Wenn ich jetzt aber

    dir = ersetzen(dir,"\","\\");
    

    schreibe erhalte ich folgende Fehlermeldungen:
    [C++ Fehler] Unit1.cpp(52): E2206 Ungültiges char-Zeichen '\' (0x5c)
    [C++ Fehler] Unit1.cpp(52): E2206 Ungültiges char-Zeichen '\' (0x5c)
    [C++ Fehler] Unit1.cpp(52): E2380 Nicht abgeschlossene String- oder Zeichen-Konstante
    [C++ Fehler] Unit1.cpp(54): E2121 ) fehlt beim Funktionsaufruf

    Bitte helft mir weiter.
    Schonmal danke im voraus.
    MfG Kevka



  • Sieh dir doch mal das Syntax-Highlighting an der entsprechenden Stell an, fällt dir da nichts auf?

    Davon abgesehen ist die ganze Aktion vermutlich überflüssig, denn der doppelte Backslash wird nur benötigt, wenn du eine Pfadangabe direkt als String im Quelltext eingeben willst. Alles andere (Variable, Benutzereingabe) wir automatisch korrekt verarbeitet.



  • Es ist leider so, dass das Symbol "\" vom Compiler als Sondersymbol behandelt wird. Deswegen wird's in char[](string) immer doppelt geschriben. .


Anmelden zum Antworten