Problem mit EscapeSequenzen
-
Hallo, ich habe da noch ein anderes Problem.
Ich möchte über die Funktion
MessageDlg(Meldung, mtError, TMsgDlgButtons() << mbOK << mbHelp, 0);
In die Variable Meldung wird von einer Datei aus ein String geladen, in der einen Zeilenumbruch "\n" enthalten ist.Wenn nun aber die Meldung zur Laufzeit erscheint,
erhalte ich an der \n- Stelle keinen Zeilenumbruch, sondern das Zeichen.
Also meine Meldung lautet dann"Der Text dieser Zeile ist zu lange\nbitte beachten."
Kann mir vielleicht jemand weiterhelfen?
DANKE
-
In deiner Datei steht in dem String nicht '\n' Zeichen (EscapeSequenz), sonder zwei Zeichen '\' und 'n'. Beim Laden werden natürlich auch zwei zeichen geladen. Zeichenfolge (EscapeSequenz) '\n' hat nur in deinem quellcode sinn.
also ich würde sagen: du suchst in deinem String nach zeichenfolge "\\n" und ersätzt sie durch "\n", dann wird auch alles korrekt angezeigt.
-
Tja, danke für deinen Beitrag,
aber der String in der Datei lautet:
Dies ist ein langer Text\nbitte beachten.
Also nix mit \\n...
Das hab ich natürlich als erstes getestet
-
das \\ ist ja auch implizit. Das heisst du siehst das nirgends (ausser im debugger).
-junix
-
wenn du deinen string lädst, wird "\n" als "\\n" behandelt. du kannst in der datei kein '\n' abspeichern. wenn du es machst dann sind es 2 zeilen, wiel '\n' ist ein zeilenumbruch. wie willst du ein zeilenumbruch in einer zeile speichern?
dein text mit einem richtigen zeilenumbruch würde so aussehen:
Dies ist ein langer Text
bitte beachtenentweder du ersätzt dein "\n" nach dem laden, oder du speicherst deine strings in eine binäre datei.
-
Ich danke euch,
dann muss ich es wohl etwas anders machen.DANKE