C++ -> Anführungszeichen innerhalb von Strings
Problem
Sie wollen einen String verarbeiten in dem Anführungszeichen vorkommen.
Die in dem String vorkommenden Anführungszeichen unterbrechen den String und es wird eine Fehlermeldung
ausgegeben da der Compiler meint, das hinter dem zweiten Anführungszeichen nur Müll steht, den er nicht versteht.
Beispiel:
text="<text:p text:style-name="P1">$var1</text:p>"
Der Compiler bricht die Stringverarbeitung mitten drin ab, da er meint, das nach dem zweiten Anführungszeichen
schluß ist.
text="<text:p text:style-name="P1">$var1</text:p>"
Die Fehlermeldung lautet in etwa so (Je nach Compiler)
error: expected ‘;’ before ‘P1’
Build failed: 1 error(s), 0 warning(s) (0 minute(s), 1 second(s))
Lösung
Sie müssen die Anführungszeichen "Escapen" das heißt vor den zum Text gehörenden Anführungszeichen müssen Sie
ein \ Zeichen setzen.
Also so:
text="<text:p text:style-name=\"P1\">$var1</text:p>"
Beispiel (Ausschnitt)
........
file.Open(SlaveFileName,wxFile::read_write);
FileContent="<text:p text:style-name=\"P2\">$var1</text:p>";
FileContent.Replace("<text:p text:style-name=\"P2\">$var1</text:p>","<text:p text:style-name=\"P2\">ZZZZZZZZZ</text:p>");
file.Write(FileContent);
file.Close();
........