Zeilenumbruch bei CString
-
Hallo
Ich möchte bei einem CSTring Objekt statt jedem '|' einen Zeilenumbruch einfügen.
Replace('|','\n'); und Replace('|','\t\n');
funktionieren aber leider nicht.
Weiß jemand wie das geht ?
Danke.
-
CString weiss nichts von einem Zeilenumbruch... nur bei der Anzeige wird dies so interpretiert.
Und unter Windows ist der Zeilenumbruch "\r\n".
-
STring schrieb:
Hallo
Ich möchte bei einem CSTring Objekt statt jedem '|' einen Zeilenumbruch einfügen.
Replace('|','\n'); und Replace('|','\t\n');
funktionieren aber leider nicht.
Weiß jemand wie das geht ?
Danke.
Du solltest:
Replace('|','[b][/b]\n'); und Replace('|','[b][/b]\t[b][/b]\n');
schreiben. Du mußt dem Replace damit bescheidgeben, daß du das Zeichen \n suchst, sonst wird es als Steuersequenz interpretiert nicht als Suchzeichen.
codeman
-
codeman schrieb:
Du solltest:
Replace('|','[b][/b]\n'); und Replace('|','[b][/b]\t[b][/b]\n');
schreiben.
Das geht so nicht... ein ' repräsentiert ein Zeichen, somit kannst Du hier keine zwei oder noch mehr darstellen...
So ist es richtig:
CString s; s.Replace("|", "\r\n");
-
Soweit ich weis sollte das schon funktionieren, da der Compiler '\\n' als ein Zeichen interpretiert. Der erste Backslash sagt dem Compiler lediglich das es den '\n' als ASCII-Zeichen interpretieren soll.
codeman
-
Probier es doch einfach...
-
codeman schrieb:
Soweit ich weis sollte das schon funktionieren, da der Compiler '\\n' als ein Zeichen interpretiert. Der erste Backslash sagt dem Compiler lediglich das es den '\n' als ASCII-Zeichen interpretieren soll.
nene, ein "\\n" ergibt '\' und 'n'. die escape-sequenz '\' ergibt '\' das 'n' danach ist dann wieder ein ganz normales zeichen.
-
Ok habt micht überzeugt, das "\\n" machts.
Wieder ne Ecke schlauer.codeman
-
Hallo
Vielen Dank erstmal, in einer MessageBox funktioniert das so schon ganz schön.
Jetzt will ich meinen CString aber in einer TextBox ausgeben, da erscheint der Zeilenumbruch aber nicht, sondern an der Stelle nur so ein kleines Kästchen.Bei der TextBox ist "Multiline" und "Want Enter" gesetzt.
Kann mir da jemand helfen ?
Vielen Dank.
-
Bei mir funktioniert dies auch ohne Probleme in einer TextBox (CEdit):
this->m_txtMultiLine.SetWindowText(_T("Hallo\r\nWelt"));
Oder was verstehst Du unter "TextBox"? Windows-Forms?
-
Genau ein CEdit mein ich.
So wie du geschrieben hast funktionierts bei mir auch einwandfrei:
Untenstehender Code macht alleridngs keinen Zeilenumbruch:
CString test; test = "Hallo|Welt"; test.Replace('|','\r\n');
-
Sorry Ausgabe vergessen:
CString test; test = "Hallo|Welt"; test.Replace('|','\r\n'); m_ctlEdit.SetWindowTextA(test);
-
STring schrieb:
CString test; test = "Hallo|Welt"; test.Replace('|','\r\n');
Ich glaube Du hast vergessen den Thread hier zu lesen...
Ersetzen ' durch "
-
Ahh sorry, muss ich beim probieren wieder rausgenommen haben.
Danke
-
Jochen Kalmbach schrieb:
Bleib ruhig, Brauner....