Stream schließen

Alles rund um die Programmierung mit Qt
Antworten
js
Beiträge: 59
Registriert: 4. Juli 2011 21:29

Stream schließen

Beitrag von js »

Versuche gerade eine Save file zu erstellen leider werden die Ergebnisse immer wieder drangehängt aber nicht ersetzt. Möchte das alles immer wieder ersetzt wird.
Habe ich etwas übersehen ??

Code: Alles auswählen

void tpopt::SAVEALL(){
int counter=0;
QString line[510];
	
QString Dateiname=".dat";
QString Ordner="./Projekte/";
QString fileudat=Ordner+www.Projektname+Dateiname;

 QFile file2(fileudat);
 file2.open(QIODevice::ReadWrite);
   QTextStream in(&file2);      
         while (!in.atEnd()) {
            line[counter] = in.readLine();
			counter++;
         }

in<<savedata<<endl;

file2.close();	
   
	
}
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Stream schließen

Beitrag von franzf »

Weil das Lesen (mit QTextStream) den Dateizeiger verschiebt, bis es am Ende ist, du dann mit dem selben QTextStream über das selbe File-Handle in die Datei schreibst schreibst.
Warum schreibst du eigentlich in "line", wenn du das nachher gar nicht mehr verwendest?

Noch ein paar Anmerkungen:
* Statt QString line[510]; wäre eine QStringList besser.
* Normalerweise sind Bezeichner mit GROSSBUCHSTABEN Konstanten oder Makros. SAVELL als Methodenname irritiert etwas.
* tpopt ist ein - naja - sehr sprechender Name. Die Zeiten, in denen man bei der Zeichenanzahl für Bezeichner beschränkt war (wg. zu wenig Speicher) sind vorbei, sprechende Namen sind DEUTLICH besser.
Antworten