Zeichenketten umbrechen, Compiler füt Sonderzeichen ein
-
Hi Leuts,
ich habe folgendes Problem:
strCmd = wxString::Format(_("SELECT * FROM Abschluss WHERE MONAT=%d \
AND JAHR = %d"),nMonth,nYear);Diese Zeile wird vom Compiler korrekt verarbeitet, d.h. in strCmd steht der komplette String drin.
Bei der folgenden Zeile fügt er nicht druckbare Zeichen nach Buchenungen ein:
strCmd = wxString::Format(_("INSERT INTO Buchungen \
VALUES(NULL, %d, %d,%d,'%s',%f,%f,%f,'%s')"), nDay,nMonth,nYear,strText,fIn,fOut,fSteuer,strBeleg);Kann mir einer erzählen woran das liegt ?
-
Das liegt am Backslash. Der Compiler nimmt da keine Rücksicht auf ungewollte Zeilenumbrüche in Strings. So verhindert man das:
strCmd = wxString::Format(_("INSERT INTO Buchungen " "VALUES(NULL, %d, %d,%d,'%s',%f,%f,%f,'%s')"), nDay,nMonth,nYear,strText,fIn,fOut,fSteuer,strBeleg);
-
warum macht er es dann beim ersten Beispiel richtig ?
Dein Code geht auch nicht, wahrscheinlich liegts am Unicode.
error C2308: Nicht übereinstimmende Zeichenfolgen werden verkettet.
1> wide "INSERT INTO Buchungen " wird mit narrow "VALUES(NULL, %d, %d,%d,'%s',%f,%f,%f,'%s')" verkettet
-
Hallo,
Grieko schrieb:
wahrscheinlich liegts am Unicode.
error C2308: Nicht übereinstimmende Zeichenfolgen werden verkettet.
1> wide "INSERT INTO Buchungen " wird mit narrow "VALUES(NULL, %d, %d,%d,'%s',%f,%f,%f,'%s')" verkettetSo ist es, wenn die erste Teil-Zeichenkette der ersten Zeile Unicode werden soll, dann muss man auch für die zweite das _-Makro verwenden:
strCmd = wxString::Format(_("INSERT INTO Buchungen ") _("VALUES(NULL, %d, %d,%d,'%s',%f,%f,%f,'%s')"), nDay,nMonth,nYear,strText,fIn,fOut,fSteuer,strBeleg);
MfG,
Probe-Nutzer
-
war ich auch schon, er schluckt´s aber trotzdem nicht