Seite 1 von 1

Stream schließen

Verfasst: 31. Juli 2011 02:01
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();	
   
	
}

Re: Stream schließen

Verfasst: 31. Juli 2011 08:26
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.