Speichern und Laden von Grundeinstellungen eines Programms



  • Hallo,

    habe ein Problem beim Sichern von Grundeinstellungen in meinem Programm. In meinem Programm kommen einige Grundeinstellungswerte (Pfadangaben, Einstellungsgrößen in Form von Variablen des Typs real, double, int) vor, die beim Programmstart geladen werden sollen (Datei). Zur Laufzeit besteht die Möglichkeit, diese Werte ggf. zu ändern und rückzusichern. Soweit so gut, dass kann man ja alles über ein CFile-Objekt machen. Meine Frage nun: gibt es in der MFC eine Klasse, die z.B. über einen Stream Daten (Variablen, Zeiger, Objekte) unabhängig vom Datentyp sichern kann? Früher bei Turbo Vision gabs Ressourcen und Collections, da war sowas möglich. Die Datentypen mussten vor gebrauch registriert werden und konnten, indentifiziert über einen Bezeichner, wahllos hintereinander über einen Stream in eine Datei geschrieben werden. Zum Laden aus der Datei reichte die Angabe des Identifizierers, um das gewünschte Objekt (Variable, Objekt, Zeiger) aus der Datei zu laden. Vorteil hier ist, dass sich der Programmierer nicht darum kümmern muss, an welcher Stelle in der Datei die gewünschten Informationen stehen.
    Also, stellt die MFC auch sowas zur Verfügung? Über Hinweise und Ratschläge wäre ich sehr dankbar....



  • Schau dir mal was zur Serialisierung an bzw. CArchive.
    Da kannst du so ziemlich alles reinschieben und musst nur auf die Reihenfolge achten.

    🙂



  • estartu_de schrieb:

    Schau dir mal was zur Serialisierung an bzw. CArchive.
    Da kannst du so ziemlich alles reinschieben und musst nur auf die Reihenfolge achten.

    🙂

    Das Prinzip der Serialisierung kenne ich. Aber genau das Problem der Reihenfolge wollte ich umgehen. Dazu folgender Hintergrund: für das Maschinensteuerprogramm was ich gerade schreibe gibt es für verschiedene Abläufe verschiedene Profile (z.B. bei einem Brotbackautomaten wird dunkles Brot anders gebacken wie helles, allerdings bleibt bei beiden die Abfolge der Prozessschritte (kneten, quellen, backen) gleich. Die Einstellungen für die einzelnen Module werden in modlaen Dialogfeldern abgefragt. Diese liegen aber in unterschiedlichen Klassen. Nun wollte ich, egal in welcher Klasse ich gerade bin, die Einstellung einfach in die Datei schieben. Bei der Serialisierung muss ich immer alles auslesen und alles wieder zurückschreiben. Die Serialisierung ist ähnlich der Nutzung der Ressourcen unter Turbo Vision. Da hat man auch in einer bestimmten Reihenfolge Daten in einen Stream geschrieben oder in der gleichen Reihenfolge wieder gelesen. Die Kollektionen nutzen die Indentifizierer. Bei Zugriff auf ein bestimmtes Element in dieser Datei war es den Streamobjekt auferlegt, die gesammte Kollektion nach dem Berzeichner zu durchsuchen und nur diesen herauszulesen.



  • Naja wäre da nicht evtl. die Registry zu gebrauchen?
    Ist nur so ein vorschlag:

    - HKEY_LOCAL_MACHINE\Software\PROGG\MODULE

    und da für jedes modul die werte speichern??



  • Okay, da hatte ich dich wohl nicht richtig verstanden.

    Wenn du wahlfeien Zugriff haben willst, ist wirklich die Registry bzw. eine Ini-Datei (wenn du das einfacher zu anderen PCs mitnehmen willst) das passendere.

    🙂



  • estartu_de schrieb:

    Okay, da hatte ich dich wohl nicht richtig verstanden.

    Wenn du wahlfeien Zugriff haben willst, ist wirklich die Registry bzw. eine Ini-Datei (wenn du das einfacher zu anderen PCs mitnehmen willst) das passendere.

    🙂

    Leider hab ich von beiden keine Ahnung. Ini-Datei würde mir da eher zusagen wie Registry, da schon eine ganze Menge da rein muss und es dann auch verschiedene ini-Dateien geben könnte. Wie spricht man denn ini-Dateien an? Die haben doch auch so einen Identifier oder sehe ich das falsch? Kennst Du da Links zu Sites oder kannst Du mir da mal ein paar Zeilen posten?


Anmelden zum Antworten