Logfile ..

Alles rund um die Programmierung mit Qt
Antworten
fjulian79
Beiträge: 5
Registriert: 11. Januar 2010 14:29

Logfile ..

Beitrag von fjulian79 »

Hi ..

Ich muss in meiner Applikation Daten die über die Serielle Schnitstelle kommen mitloggen und in einem File zur späteren Auswertung speichern. Zu dem Zweck würde ich gerne zur Laufzeit des Programms den Speicherort des Logfiles angeben und zu einem vom User bestimbaren zeitpunkt zum loggen beginnen.

Dazu hab ich mir mal folgendes überlegt ..

In der Klassendefinition lege ich mir einen Zeiger auf ein QFile und einen Filename an:

Code: Alles auswählen

...
private:
QFile         logfile;
QString     logfile_name;
...
in einem Slot der von einem Button ausgelöst wird gebe ich den Pfad an und weise dem QFile Zeiger einen wert zu:

Code: Alles auswählen

myapp::logfile_name_selection(){
     logfile_name = QFileDialog::getSaveFileName( ... );
     logfile = new QFile(logfile_name);
}
will ich dan die datei öffen bzw was reinschreiben wird die datei zwar erstellt, aber es steht nie was drinn !?

Code: Alles auswählen

...
logfile->open();
logfile->write("Hallo Welt");
wo liegt da der fehler ?

ps. sorry wenns echt banal is, aber ich hab wenig erfahrung mit QT ;-)

lg J.
TSS
Beiträge: 73
Registriert: 24. November 2009 15:40
Kontaktdaten:

Beitrag von TSS »

Wenn

Code: Alles auswählen

logfile->write("Hallo Welt"); 
den Wert -1 zurückgibt, dann ist ein Fehler aufgetreten. Könnte in deinem Fall daran liegen, dass du nicht angibst, wie die Datei geöffnet werden soll. Also z.B.

Code: Alles auswählen

logfile->open(QFile::ReadWrite); 
fjulian79
Beiträge: 5
Registriert: 11. Januar 2010 14:29

Beitrag von fjulian79 »

in meinem post sind die argumente von logfile.open() unter den tisch gefallen .. sorry ..

inzwischen hab ich rausgefunden das das in der datei erst nach logfile.close() was zu finden ist .. kann es sein das die QFile klasse alles was ich in die datei schreiben will buffert und erst beim schließen wirklich in die datei schreibt ?

lg J.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das kann nicht nur sein das ist bei allen Datei I/O-Operationen von Windows oder Linux so. Aber die Doku zu QFile::open() zeigt ja wie man dies unterbinden kann.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

Beitrag von hakaishi »

Hi,
ich bin mir nicht sicher, aber müsste es nicht mit bool QFile::flush () auch funktionieren in die Datei zu schreiben, ohne sie schließen zu müssen?

Gruß, Hakaishi
Antworten