Daten speichern..



  • Hallo,
    hab ne dialogfeldbasierende anwendung. Die arbeitet mit nen paar Variablen.
    Jezt will ich diese Variablen speichern können, um den zustand des Dialogfelds bei neuem start wieder herstellen zu können. Das heist doch serialisieren, oder? was muss ich da machen, dass ich das in so ner anwendung machen kann??

    bin noch totaler noob, bräuchte es abre dringend!!

    danke üfr hilfe!!



  • Hi,

    speicher die Werte doch in eine INI.
    Und beim nächsten Programmstart dann
    den Inhalt der INI-Datei auslesen, prüfen
    und entsprechend darauf reagieren.

    Einfach mal im Forum bzw FAQ zu MFC suchen.
    Da ist es ganz genau beschrieben.

    bye Linus



  • danke, aber ich hätte gerne Dateien aus denen ich dann die Variablen auslesen kann, und auch hineinschreibne kann.
    Hab dazu jezt auch schon was im Forum gefunden:

    DECLARE_SERIAL (CUser) // in die Klassendefinition
    
    IMPLEMENT_SERIAL (CUser, CObject,1) // in User.cpp (z.B. vor dem Konstruktor
    

    Füg eine Memberfunktion ein, also bei mir in den Dialog.

    void CUser::Serialize(CArchive &ar) 
    { 
       CObject::Serialize(ar); 
       if(ar.IsStoring()) 
          ar<<m_strUserName<<m_strTime<<m_iAnzSave; 
       else 
          ar>>m_strUserName>>m_stTime>>m_iAnzSAve; 
    }
    

    Das speichern auf die HD:

    CFile file("C:\\user.dat", CFile::modeWrite | CFile::modeCreate); 
    CArchive ar(&file, CArchive::store); 
    Serialize(ar); 
    ar.Close();
    

    Von der HD lesen:

    CFile file("C:\\user.dat", CFile::modeRead); 
    CArchive ar(&file, CArchive::load); 
    Serialize(ar); 
    ar.Close();
    

    So, das klappt wohl auch wunderbar, nur hab ich jetz keine feste datei, sondern möchte das natürlich noch mit utnerschiedlichen dateinamen machen, sonst könnte ich ja wirklciih ne INI machen. Nur wie knn ich da smachen, hätte gerne so nen Öffnen oder speichern Dialoog, den ja quasi alle Windowsanwendungen haben. Wie kan ich das machen, gibts da was vorgefertigtes, das meiner anwenudng dann quasi den pfad zurück gibt??????

    Danke schonmal ..



  • Öffnen/Speichern Dialog --> CFileDialog
    Daten speichern --> CFile bzw. CStdioFile



  • Ok,
    vielen Dank, werd jetzt mal nen bissi rumwurschteln, vll. klappts ja´!!

    Also danke.



  • Hola,
    also ich hab das jetzt alles hinbekommen. klappt wunderber und ich bin überglücklich :).
    Nur würde ich jetzt gerne noch so FileFilter reinbekommen, also dass der z.B. nur *.txt dateien anzeigt.
    Das krieg ich aber net so hin.

    Glaube da muss ich so nen OPENFILENAME struct machen und da dann LPCTSTR
    irgendwie setzen, und dann an das Laden-/Speicher-Dialogfeld übergeben.

    Nur steht da, dass dieses LPCTSTR irgendwie aus String Paaren besteht.
    Das versteh ich net..

    Was muss ich machen??



  • dlgFile.m_ofn.lpstrFilter = TEXT("Textdokumente (*.txt) \0*.txt\0");
    

    Wobei du dlgFile durch deine Bezeichnung ersetzen musst. 😉



  • OK,
    dann hbe ich jetzt denke ich alles was ich brauche, vielen dank....


Anmelden zum Antworten