Probleme beim schrieben in Textfile

Alles rund um die Programmierung mit Qt
Antworten
bigmil
Beiträge: 23
Registriert: 18. Mai 2005 11:06

Probleme beim schrieben in Textfile

Beitrag von bigmil »

Hallo zusammen,

habe Probleme beim Schreiben in ein Textfile. Es wird zwar ins File geschrieben, aber der Zeilenumbruch am Ende der Zeile findet nicht statt (weder endl noch "\n"), sondern es wird ein Zeichen eingefügt und beim nächsten Aufruf weiterhin in die selbe Zeile geschrieben.

Code: Alles auswählen

QFile file( "Protocol.txt" );
if( file.open( IO_WriteOnly | IO_Append ) );
{
QTextStream stream( &file );
stream << "Standort"  << "	" << "Bezeichnung" << "	" << "NeuronID" << "	" << "ApplikationDLL" << "	" << "Zaehler" << endl;
file.close();
}
Kann mir da jemand einen Tipp geben, an was das liegt? Muss man da was spezielles beachten beim Schreiben in Textfiles? Sollte doch so eigentlich gehen, oder? Benutze QT 3.3.4 auf WinXP.

Danke und Gruss
br06
Beiträge: 7
Registriert: 4. Juli 2005 21:40

Beitrag von br06 »

Hi,

Du solltest Qt noch mitteilen, dass Du eine textdatei schreiben willst.

Code: Alles auswählen

        QFile file("in.txt");
        if (!file.open(QIODevice::Text))
            return;

EDIT: Codefragment

Gruß Christian
Zuletzt geändert von br06 am 10. August 2005 10:58, insgesamt 1-mal geändert.
bigmil
Beiträge: 23
Registriert: 18. Mai 2005 11:06

Beitrag von bigmil »

habe die Lösung gefunden. Das Flag IO_Translate muss noch eingefügt werden, damit Zeilenumbrüche in die spezifischen Zeichenfolgen der Zielplattformen ( \r \n ) übersetzt werden können.

Code: Alles auswählen

if( file.open( IO_WriteOnly | IO_Append | IO_Translate ) ); 
{ 
QTextStream stream( &file ); 
stream << "Standort"  << "   " << "Bezeichnung" << "   " << "NeuronID" << "   " << "ApplikationDLL" << "   " << "Zaehler" << endl; 
file.close(); 
} 
Danke und gruss
br06
Beiträge: 7
Registriert: 4. Juli 2005 21:40

Beitrag von br06 »

Sorry bigmil,

habe gerade gesehen, dass beim Einfügen des Codes etwas schief gelaufen ist.
Antworten