Probleme mit CArchive und CFile



  • Hallo ihr,

    Ich habe ein kleines Problem und hoffe das ihr mir helfen könnt. Ich habe ein kleines Programm für einen Freund angefangen welches seine 30 Stunden Internet Zeit im Monat herunterzählt. Zum speichern der Daten in eine Datei verwende ich follgenden Code:

    void COnlineCounterDlg::OnQuit() 
    {
        CConnectionCounterTimer saveset;                        // Selbstgemachte Countdown - Klasse (serialisierbar!)
        CFileFind cctfile;
    
        saveset.SetTimerHour(countdown.GetTimerHour());
        saveset.SetTimerMin(countdown.GetTimerMin());
        saveset.SetTimerSec(countdown.GetTimerSec());               
        //saveset.SetMonth(countdown.GetMonth());
        //saveset.SetTray(countdown.GetTray());
    
        if(cctfile.FindFile("cct.dat", 0))                      // Überprüfung ob Datei vorhanden ist
        {
            myFile.Open("cct.dat", CFile::modeWrite, NULL);     // Datei im Schreibmodus öffnen
            CArchive ar(&myFile, CArchive::store);              // Serialisierung der Daten
            ar << saveset;
            myFile.Close();                                     // Datei schließen
        }
    }
    

    Wenn ich also nun auf den Beenden-Button klicke kommt eine recht interessante Fehlermeldung mit der ich nichts wirklich Anfangen kann:

    Debug Assertion failed

    file: filecore.cpp <- Ist KEINE von meinen Dateien
    line: 238

    Dann stürzt das ganze ab.
    Ich verwende aber genau den GLEICHEN Code schon in der OnInitDialog um die Datei (falls sie nicht existiert) mit einem Wert vorzubelegen und da gehts.
    Ich habe auch daran gedacht die Datei mit .Close() zu schließen bevor ich sie erneut öffne.

    Beim debugen des Codes läuft er auch ganz normal durch.

    Mir gehen langsam die Ideen aus und deshalb bitte ich euch um Hilfe

    Thx AZ_Blade_99



  • CArchive ar(&myFile, CArchive::store);              // Serialisierung der Daten
    ar << saveset;  // Daten werden temporär gespeichert
    myFile.Close(); // Datei wird geschlossen, bevor temporäre Daten in Datei geschrieben wurden
    // Absturz, FileHandle fehlerhaft!
    

Anmelden zum Antworten