Anführungsstrich " in einen AnsiString einfügen



  • Hi alle zusammen!

    Ich verzweifle bald an einer ganz simplen Sache:

    Ich möchte an einen AnsiString einen weiteren AnsiString anfügen, welcher in " " steht.

    Also:

    c:\\hallo.exe "e:\\test.txt"

    wobei

    AnsiString Temp1="c:\\hallo.exe";
    AnsiString Temp2="e:\\test.txt";
    
    AnsiString Temp3=Temp1+" "+char(34)+Temp2+char(34);
    

    Statt des gewünschten Strings (s.o.) kommt sowas raus:

    c:\\hallo.exe \"e:\\test.txt\"

    Vor jedes " wird automatisch noch ein \ gesetzt. 😕

    Wie muss es richtig sein?



  • Wo liest du das aus?
    und
    Wieso die gecasteten ASCII-Werte und nicht einfach ein

    ...+ "\"" + ...
    

    -junix



  • AnsiString Temp1="c:\\hallo.exe";
    AnsiString Temp2="e:\\test.txt";
    
    AnsiString as = Temp1 + "\"" + Temp2 + "\"";
    

    Such mal im Netz nach Escape-Sequenzen 🙂

    Edit: junix war schneller (=



  • PuppetMaster2k schrieb:

    AnsiString Temp1="c:\\hallo.exe";
    AnsiString Temp2="e:\\test.txt";
    AnsiString as = Temp1 + "\"" + Temp2 + "\"";
    

    Tja, so schlau war ich auch schon. 😉 Da kommt aber der selbe Mist in Grün dabei raus.



  • Ich hasse selbstzitate, aber...

    junix schrieb:

    Wo liest du das aus?



  • Ich fahre im debugger mit meinem Mauscursor über Test3 und siehe da vor jedem der beiden " steht \

    Muss das explizit so sein?



  • Ja loisch muss das so sein, wenn dem nicht so währe, dann währe ja der String an der Stelle schon zu ende, und das willste ja sicher net.



  • Der Zwerg hat nicht unrecht. Der Debugger des BCB stellt alle Strings so dar wie sie im Code auch stehen würden. Also z.B. auch ein \t oder so...

    -junix

    EDIT: Hättest du den String nur einmal ausgegeben und nicht nur im Debugger geschaut, hättest du gar nicht lange suchen brauchen (O;



  • Aha. Alles klar! Danke.

    (Scheiß Debugger :D)


Log in to reply