PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt] Zeilenumbruch bei QTextStram in eine Datei?



Boron
04-03-2007, 12:12
Hallo zusammen,
ich wollte mit Qt-4.2.2 unter Windows mit Hilfe eines QTextStreams gerade was in eine Textdatei schreiben lassen.
Jetzt ist mir aufgefallen, dass das Zeilendezeichen wohl im "Unix-Format" geschrieben wird, also nur ein \n. Da ich die Ausgabedatei aber gerne auch mal im Windows-Notepad betrachten würde fehlt diesem wohl das \r dazu.
Die einzelnen Zeilen werden somit nicht umgebrochen, sondern hängen aneinander und werden nur durch ein Zeichen getrennt, das als kleines rechteckiges Kästchen dargestellt wird.
Hier mal das zugehörige Kodeschnippsel:
QFile data("output.txt");
if( data.open(QFile::WriteOnly | QFile::Append) )
{
QTextStream out(&data);
out << irgendeinQLabel->text() << endl;
}
data.close();

undefined
04-03-2007, 14:06
Siehe IO_Translate

Boron
04-03-2007, 14:46
Kann es sein, dass es IO_Translate nicht (mehr) gibt?
Folgendes funktioniert bei mir:
if( data.open(QFile::WriteOnly | QFile::Append | QFile::Text) )Auf jeden Fall ein Dankeschön für den Schubs in die richtige Richtung :).

undefined
04-03-2007, 15:11
Jup stimmt, habe gerade mal nachgesehen, seit QT 4 ist es QIODevice::Text

When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.