Seite 1 von 1

Dateien anlegen

Verfasst: 28. Juni 2008 14:13
von door44
hi,
ich habe ein kleines problem ich möchte mehrere dateien anlegen (siehe code). leider bricht das ganze nach der dritten datei einfach ab.

hoffe jemand von euch hat ne idee...
danke schonmal

Code: Alles auswählen

void blabla()
{

	int counter=0;
	QString tempStr;

	QFileDialog* pFileDialog = new QFileDialog();
	QString outFile = pFileDialog->getSaveFileName ( "/home/user/","",0,"save file dialog","Choose a filename to save as" );
	if ( outFile.isEmpty() )
		return;
	tempStr.setNum ( counter );
	outFile.append ( tempStr );
	QFile FileOut ( outFile );
	QTextStream DataStream ( &FileOut );

	for ( int i=0;i<30;i++ )
	{
		if ( FileOut.open ( IO_WriteOnly | IO_Append ) )
		{
			DataStream<<counter;
			DataStream<<"\n";
			FileOut.close();
		}
		outFile.remove ( tempStr );
		counter++;
		tempStr.setNum ( counter );
		outFile.append ( tempStr );

		FileOut.setName ( outFile ); 
		DataStream.setDevice ( &FileOut );
		cout << "--> neue Datei " << outFile << endl;
	}
}

Verfasst: 28. Juni 2008 14:22
von Christian81
Weder schreibst du was in die Datei noch schließt Du sie wieder.

Verfasst: 28. Juni 2008 14:33
von door44
ich schreibe doch mit DataStream<<counter; den aktuellen counterstand und mit FileOut.close(); schließe ich sie dachte ich?

wie gesagt drei die ersten drei werden angelegt und haben den jeweiligen inhalt 0, 1, 2. nur danach geht es nicht weiter...

Verfasst: 28. Juni 2008 14:47
von Christian81
Ich hätte FileOut.close() und das setzen des Datastreams woanders erwartet.

Ein paar Debugausgaben und ein Debugger sollten da aber schnell Klarheit bringen. Soweit sieht es ok aus.

Verfasst: 28. Juni 2008 15:04
von door44
habe ich probiert aber nix gefunden.
FileOut.open ( IO_WriteOnly | IO_Append ) gibt einfach ein false zurück wenn ich die vierte datei anlegen will

edit: habs jetzt outFile.remove ( tempStr ); hat dummer weise auch was aus dem verzeichnispfad entfernt......

Verfasst: 28. Juni 2008 15:55
von Christian81

Verfasst: 28. Juni 2008 16:17
von door44
ja DANKE hab meinen fehler gefunden....
outFile.remove ( tempStr ); hat dummer weise auch was aus dem verzeichnispfad entfernt...