Seite 1 von 1

Problem mit Linefeed bei Zuweisung von Text

Verfasst: 26. März 2009 13:45
von QtNoob2008
Hallo,
hab ein kleines Problem.
Wenn ich einen QString anlege mit QString ("Zeile1\nZeile2");
wird das Linefeed berücksichtigt.
Wenn ich aber den Text von woanders lese und dort auch das \n vorhanden ist. Wird der Zeilenumbruch nicht interpretiert.

Wer kann mir helfen ?

Gruß
Noob

Verfasst: 26. März 2009 14:59
von androphinx
das ist os-abhängig. unix reicht \n windows braucht unbedingt \r\n.
qt hat sich wie unix auf \n festgelegt...

Mfg androphinx

Verfasst: 26. März 2009 20:35
von solarix
Das ist eine Compilersache... wenn du in C-Code "\n" schreibst, werden da nicht zwei Bytes eingefuegt, sondern nur eines (0x0A). Wenn du genau diesen String dynamisch einliest (z.B. aus einer Textdatei, oder Netzwerk oder sonst woher) bekommst du zwei Bytes (0x5C + 0x6E, '\' und 'n').
Oder anderst ausgedrückt: die eingelesenen Rohdaten müssen natürlich einen "echten" Zeilenvorschub (0x0A) haben oder _du_ musst die Interpretation machen (Replace von "\\n" durch "\n")

Verfasst: 30. März 2009 23:52
von QtNoob2008
Hallo,

sorry dass ich mich erst jetzt melde, bin erst jetzt dazu gekommen zu antworten. Vielen Dank für deine sehr gute Erklärung!
Kurz nachdem ich die Frage gestellt hatte, hab ich auch schon selbst die Lösung gefunden. Hinter dem "\n" steckt ja ein "nicht darstellbares" ASCII Zeichen. Hatte gedacht dass es beim Einlesen direkt berücksichtigt werden würde. Hab dann in einer .ts Datei (Übersetzungsdatei) geschaut und dort wird eben ein richtiger Zeilenvorschub abgespeichert.... Hab es genauso wie du es beschrieben hast durch ein replace gelöst.

Trotzdem Danke !!!

Gruß QtNoob2008