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)