Daten "satzweise" in Datei speichern -- wie?
Verfasst: 17. August 2006 03:38
Hallo,
ich möchte in Qt einsteigen und bin ganz zufrieden mit meinen Fortschritten.
Allerdings komme ich an einer Stelle nicht weiter.
Ich habe ein AdressProgramm geshrieben und möchte beim speichern möglichst nur den geänderten Datensatz in der Datei ändern. Das ganze möglichst in Klartext also nicht mit QDataStream.
Die Daten sollen einfach zeilenweise abgelegt werden, also Vorname\nNachname\n etc.
Ich wollte dann nach der Index-Nummer in der Datei suchen und den Satz überschreiben.
So sieht der Ansatz bis jetzt aus:
index ist ein int. recordStart ist ein Char das als Steuerzeichen dienen soll.
Ihr ahnt es schon: es funktioniert nicht. Der Datensatz wird einfach angehängt. Scheint einfach daran zu liegen, dass QString keine Integer umwandelt.
Hat jemand eine Idee, wie ich das zum laufen kriege?
Ich würde auch gern andere Vorschläge testen. Wie gesagt, ich will am Ende wie bei einer Datenbank nur kurz die Änderungen auf der Festplatte speichern.
Ideen?
Beste Grüße
Markus
ich möchte in Qt einsteigen und bin ganz zufrieden mit meinen Fortschritten.
Allerdings komme ich an einer Stelle nicht weiter.
Ich habe ein AdressProgramm geshrieben und möchte beim speichern möglichst nur den geänderten Datensatz in der Datei ändern. Das ganze möglichst in Klartext also nicht mit QDataStream.
Die Daten sollen einfach zeilenweise abgelegt werden, also Vorname\nNachname\n etc.
Ich wollte dann nach der Index-Nummer in der Datei suchen und den Satz überschreiben.
So sieht der Ansatz bis jetzt aus:
Code: Alles auswählen
QTextStream out(&File);
QString input;
input = out.readLine();
while(!(input.contains(index)) && !out.atEnd())
{
input = out.readLine();
}
out << recordStart << endl;
out << adressenliste[index].Index << endl;
out << adressenliste[index].Vorname << endl;
out << adressenliste[index].Nachname << endl;
out << adressenliste[index].Strasse << endl;
out << adressenliste[index].Plz << endl;
out << adressenliste[index].Ort << endl;
out << adressenliste[index].Telefon << endl;
out << adressenliste[index].Email << endl;
File.close();
return 0;Ihr ahnt es schon: es funktioniert nicht. Der Datensatz wird einfach angehängt. Scheint einfach daran zu liegen, dass QString keine Integer umwandelt.
Hat jemand eine Idee, wie ich das zum laufen kriege?
Ich würde auch gern andere Vorschläge testen. Wie gesagt, ich will am Ende wie bei einer Datenbank nur kurz die Änderungen auf der Festplatte speichern.
Ideen?
Beste Grüße
Markus