Seite 1 von 1

Objekte direkt in ein File speichern

Verfasst: 27. Juli 2007 15:24
von thereapman
HI Leute!

Ich hab ein Objekt das über eine eigene Klasse erstellt wird.
Nun will ich dieses Objekt so wie es ist in ein File speichern.

Dachte mit QDataStream geht das.
Hier maln Codeschnipsel:

Code: Alles auswählen


void TourPrio::save()
{
	QString save_file = "tourprio.dat";
	//Read from file
	QFile priofile(save_file);
	if(!priofile.open(QIODevice::WriteOnly))
	{
		QMessageBox::critical(0,"MDE-Zentrale","Kann Tourprioritäten nicht öffnen!",QMessageBox::Ok);
		return;
	}
	
	QDataStream data(&save_file);
	
	//Magiccode schreiben
	quint32 magiccode = 0x0202352A;
	
	data << magiccode;
		
	for(int i = 0; i < items.size(); i++)
	{
		TourPrioItem prioitem_save;
		prioitem_save = items.at(i);
		data << prioitem_save;
	}
	priofile.close();
}


Verfasst: 27. Juli 2007 17:52
von upsala
Und? Gehts etwa nicht? So ganz ohne Fehlermeldung? Ansonsten C++-'Grundlagen'.

Verfasst: 27. Juli 2007 18:08
von thereapman
So erstmal den Typo mit dem Dateihandle rausgemacht.

Fehlermeldung vom Compiler:

Code: Alles auswählen

error: no match for 'operator<<' in 'data << prioitem_save'
Ist nach studium der QT-Doku auch korrekt.
Nun nochmals die Frage: mit welcher (QT)-Funktion speicher ich ein komplettes Obejkt in ein File (ein fingerzeig würde reichen)?

Verfasst: 27. Juli 2007 18:49
von Christian81
Man kann kein QObject in eine Datei speichern.
Du musst das Laden und Speichern selbst implementieren