Objekte direkt in ein File speichern

Alles rund um die Programmierung mit Qt
Antworten
thereapman
Beiträge: 36
Registriert: 6. Juni 2007 15:39

Objekte direkt in ein File speichern

Beitrag 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();
}

upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Und? Gehts etwa nicht? So ganz ohne Fehlermeldung? Ansonsten C++-'Grundlagen'.
thereapman
Beiträge: 36
Registriert: 6. Juni 2007 15:39

Beitrag 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)?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Man kann kein QObject in eine Datei speichern.
Du musst das Laden und Speichern selbst implementieren
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten