String im Quelltext über mehrere Zeilen schreiben....
-
Hallo,
ich möchte einer CString-Variablen im Code einen recht langen Text zuweisen.
Dieser wird dann in einem Textfeld angezeigt.\r\n für neue Zeile und so ist alles bekannt und funktioniert auch.
Meine Frage bezieht sich auf die Eingabe im Quelltext. MÖchte diese aus Übersichtsgründen eben auch über mehrere Zeilen gehen lassen wie z.B.:
pParent->m_strHint = "Variable Name:\tRXB\r\n Value Range:\t+-98°/s\r\n Mem. size:\t2 Byte (int)\r\n Resolution:\t--\r\n \r\n Contains the ADMA body fixed rates in XYZ. Please note, that the output is calibrated, but no Kalmanfilter corrections are applied";
Wenn ich das so kompiliere bekomme ich Fehlermeldungen. Wie kann ich den Compiler dazu brigen meine "Returns" während der Zuweisung nicht als Fehler zu deklarieren??
Vielen Dank schon mal.
Gruss
S.
-
\r\n brauchst du nur wenn der entstehende Text ein Enter drin haben soll. Dann kannst du schreiben
Hallo\r\nwie gehts
Ausgabe:
Hallo
wie gehtsWenn du einfach einen langen String hast
mach:CString langerString ="gaaaaanz viel Text" +"noch mehr laaanger Text" +"puh endlich zuende";
-
Mach einfach einen Backslash ans Ende der Zeile.
pParent->m_strHint = "Variable Name:\tRXB\r\n\ Value Range:\t+-98°/s\r\n\ Mem. size:\t2 Byte (int)\r\n\ Resolution:\t--\r\n\ \r\n\ Contains the ADMA body fixed rates in XYZ. Please note, that the output is calibrated, but no Kalmanfilter corrections are applied";
-
Was ich heute alles dazu lern! Ist ja wahnsinn alles sachen die man eigentlich wissen sollte
Naja mit der Zeit bekomm ich diese Feinheiten ja auch mit!
-
Hallo,
erstmal Danke an euch beide.
Die Variante von Polofreak kenne ich schon und würde auch funktionieren....Das Hinzufügen des \ war die Methode die ich gesucht habe...allerdings funktioniert die nicht wirklich.
Zum Einen werden in meinem Textfeld dann in der ersten Zeile 2 Schriftzüge dargestellt (obwohl ich den String vorher auf "" gesetzt habe);
Zum Anderen wird ab der zweiten Zeile alles eingerückt.....Irgendwie schon komisch.....!
Trotzdem Danke für die Hilfe.
Gruss
S.
-
Nein, das ist nicht komisch...
Der Backslash am Ende der Zeile sagt dem Kompiler, dass er einfach den Inhalt der nächsten Zeile an die aktuelle anhängen soll. Und genau das tut er, mit allen Leerzeichen.
-
Hallo deus,
Du hast Recht. jetzt habe sogar ich es kapiert....
So funktionierts.Dann mal Danke und noch nen schönen Abend.
Gruss
s.
-
Man kann aber auch einfach mehrere Stringliterale hintereinander schreiben. In dem Fall ist das ganze nicht so instabil, falls ein zusätzliches Leerzeichen am Ende der Zeile die Escape-Sequenz kaputt machen sollte.
char str[] ="hallo wie geht es dir" "mir geht es gut" "danke der nachfrage";
-
dEUs schrieb:
Nein, das ist nicht komisch...
Der Backslash am Ende der Zeile sagt dem Kompiler, dass er einfach den Inhalt der nächsten Zeile an die aktuelle anhängen soll. Und genau das tut er, mit allen Leerzeichen.Oh.
Ich habe wohl noch nie den so entstandenen String hinterher angezeigt.
-
lol
-
Naja, sowas langes habe ich wenn überhaupt bei Datenbankkram z.B. als m_strFilter oder so. Da stören Leerzeichen ja nicht so schnell.