QTextStream erzeugt nur leere Datei

Alles rund um die Programmierung mit Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

QTextStream erzeugt nur leere Datei

Beitrag von pospiech »

Mit folgendem Code wird die richtige Datei erstellt, aber kein Inhalt erzeugt. So als würde QTextStream überhaupt nichts machen.

Code: Alles auswählen

void DialogSaveProject::saveData(QString & filename)
{
	if (LaserDynamics.DataCount() > 0 )
	{
		QFile file(filename);
		if (!file.open(QIODevice::WriteOnly))
		{
			std::cerr << "Cannot open file for writing!" << endl;
			return;
		}
		QTextStream out(&filename);
		out << "Iteration" << "Energy" << "Gain" << endl;
		for (int i = 0 ; i < LaserDynamics.DataCount(); i++)
		{
			out << i << endl;
		}
	}
}
In der For-Schleife wird dabei ca. 400 mal iteriert.

Warum bekomme ich keine Ausgabe ?

Matthias
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Weil Du das File nicht wieder zu machst.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Weil Du das File nicht wieder zu machst.
Sicher? Das sollte doch eigentlich der QFile-Destruktor erledigen
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

macman hat geschrieben:Weil Du das File nicht wieder zu machst.
Daran liegt es anscheint nicht. Ich habe ein file.close() hinzugefügt, aber die Datei ist noch immer leer.

Code: Alles auswählen

		QFile file(filename);
		if (!file.open(QIODevice::WriteOnly))
		{
			std::cerr << "Cannot open file for writing!" << endl;
			return;
		}
		QTextStream out(&filename);
		out << "Iteration" << "Energy" << "Gain" << endl;
		for (int i = 0 ; i < LaserDynamics.DataCount(); i++)
		{
			out << i << endl;
		}
		file.close();
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

upsala hat geschrieben:Sicher? Das sollte doch eigentlich der QFile-Destruktor erledigen
Hast Recht, hatte gerade Gelegenheit das zu testen. Mir war das nur aufgefallen, da ich immer alles zu mache, was ich auch auf mache. Genauso wie man einen gelöschten Pointer auf NULL setzt, auch wenn man ihn nicht mehr braucht.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Hehe, du streamst nach filename und nicht nach file ;)
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

franzf hat geschrieben:Hehe, du streamst nach filename und nicht nach file ;)
Danke, ich wäre wohl selber nicht darauf gekommen, dabei ist der Fehler ja offensichtlich...

Matthias
Antworten