Speichern der Settings



  • Hi Leute,

    ich wollte mal fragen wie ihr eure Settings abspeichert. Zurzeit habe ich dies noch in einem ini File. Welche alternativen wuerde es geben? XML haette ich mir zB. schon mal angeschaut aber ich find leider keine gute und kleine library fuer C. Hier im Forum gibts auch nen Link zu einer Seite wo verschriedene libraries vergliechen werden, da sind aber leider nur 2 dabei fuer C.

    Greetz C0de



  • Code4Fun_loggedout schrieb:

    Hi Leute,

    ich wollte mal fragen wie ihr eure Settings abspeichert. Zurzeit habe ich dies noch in einem ini File. Welche alternativen wuerde es geben? XML haette ich mir zB. schon mal angeschaut aber ich find leider keine gute und kleine library fuer C. Hier im Forum gibts auch nen Link zu einer Seite wo verschriedene libraries vergliechen werden, da sind aber leider nur 2 dabei fuer C.

    Greetz C0de

    Also wenn du eine OS abhängige methode suchst
    Windows: Windows Registry
    Mac: .plist in ~/Library/Preferences
    Linux: ~/.config textdatei

    Sonst, eigenen Parser für Textdateien schreiben wenn XML zu mächtig ist...



  • ini reicht (fast) vollkommen aus. Alles andere ist nur unnötig kompliziert.

    Oder: Ich sichere alles in ini (oder sehr ähnlichem Format) ab.



  • giowck schrieb:

    Code4Fun_loggedout schrieb:

    Hi Leute,

    ich wollte mal fragen wie ihr eure Settings abspeichert. Zurzeit habe ich dies noch in einem ini File. Welche alternativen wuerde es geben? XML haette ich mir zB. schon mal angeschaut aber ich find leider keine gute und kleine library fuer C. Hier im Forum gibts auch nen Link zu einer Seite wo verschriedene libraries vergliechen werden, da sind aber leider nur 2 dabei fuer C.

    Greetz C0de

    Also wenn du eine OS abhängige methode suchst
    Windows: Windows Registry
    Mac: .plist in ~/Library/Preferences
    Linux: ~/.config textdatei

    Sonst, eigenen Parser für Textdateien schreiben wenn XML zu mächtig ist...

    Arbeite unter Windows und eigentlich ist es egal ob ich OS abhaengig bin. Aber mit der Registry is au schlecht find ich. Ich moechte meine Setttings eigentlich in meiner exe als Resourcen haben da sie eig nicht mehr geaendert werden muessen sobald sind einmal fest stehen.

    Und mit dem ini File. Auf der einen Seite bin ich damit schon zufriedne aber ka weiss au ned auf der andren Seite au wieder ned weiss au ned genau warum 😕

    Grretz





  • theta schrieb:

    Schreiben: http://msdn.microsoft.com/en-us/library/ms725501(v=vs.85).aspx
    Lesen: http://msdn.microsoft.com/en-us/library/ms724366(v=vs.85).aspx bzw. http://msdn.microsoft.com/en-us/library/ms724353(v=vs.85).aspx

    Hmm sorry wenn ich mich unklar ausgedrueckt haber, aber aktuell speichere ich meine Einstellungen schon in einem ini File. Bin mit dem aber nicht zufrieden (wie gesagt weiss au ned genau warum) und jetzt wollte ich nach alternativen fragen.

    Also das lesen bzw schreib fuer dieses Format ist nicht das Problem

    Gruesse



  • Unter Windows einfach die Registry verwenden. Configdateien die neben der .exe rumliegen sind vor allem auf neueren Windowsversionen problematisch (erfordern Schreibrechte im Programmverzeichnis).



  • dot schrieb:

    Unter Windows einfach die Registry verwenden. Configdateien die neben der .exe rumliegen sind vor allem auf neueren Windowsversionen problematisch (erfordern Schreibrechte im Programmverzeichnis).

    Wenn man sich an die Regeln für Konfig Files von MS hält ist es kein Problem. Es gibt auch noch User Verzeichnisse...



  • theta schrieb:

    Wenn man sich an die Regeln für Konfig Files von MS hält ist es kein Problem. Es gibt auch noch User Verzeichnisse...

    Dann ist der Vorteil von wegen liegt neben der exe und so aber genauso verschwunden, also kann man auch gleich die Registry verwenden die von Anfang an für genau sowas gedacht ist...



  • Code4Fun_loggedout schrieb:

    (wie gesagt weiss au ned genau warum)

    Das musst du schon ein wenig genauer erklären. Ich habe mal ein paar Funktionen geschrieben, mit denen du beliebige Verschachtelungen von
    std::vector<TYPE>
    und std::map<wxString, TYPE> speichern und laden kannst, wobei TYPE ein Element der folgenden Dinge sein kann:
    double
    wxString
    std::vector<TYPE>
    std::map<wxString, TYPE>

    Es wäre also theoretisch denkbar, den Typ std::map<wxString, std::vector<std::map<wxString, std::vector<double> > > > abzuspeichern und beim Programmstart wieder einzulesen.

    std::map<wxString, wxString> wäre für deine Zwecke zum Beispiel geeignet. Du kannst wahrscheinlich mit relativ wenig Aufwand die Typen auf std::string und int abändern. Ich habe das persönlich noch nicht benutzt, weil ich es noch nicht gebraucht habe, wenn du es brauchst, kann ich dir den Code gerne hochladen.



  • Code4Fun_loggedout schrieb:

    Aber mit der Registry is au schlecht find ich.

    Hast recht, ist Schrott.

    Code4Fun_loggedout schrieb:

    Ich moechte meine Setttings eigentlich in meiner exe als Resourcen haben da sie eig nicht mehr geaendert werden muessen sobald sind einmal fest stehen.

    Und warum machst du das denn nicht einfach? String-Table bietet sich an.



  • Was sind denn das für "Settings" die schon beim kompilieren fest stehen? Was spricht gegen #define oder sowas?



  • Du brauchst doch eh vernünftige Defaultwerte im Programm (wenn die .ini nicht da ist). Und falls sich doch mal was ändern soll, musst du die .ini nehmen.



  • cooky451 schrieb:

    Was sind denn das für "Settings" die schon beim kompilieren fest stehen? Was spricht gegen #define oder sowas?

    Hmm joa also ich hab ein Dummy Programm mit der logik und ein Builder in dem man die Settings eingibt. Und danch wird das "richtige" Programm erstellt. Also ein einfacher Builder halt. Und bevor ich fuer jeden String nen Dummy Wert nemm, das File oeffne und nach den Strings such und dann ersetzt, wollte ich halt ein bereits vorhandenes Format nehmen und in den Resourcen speichern. Und falls echt mal was geaendert werden soll. Einfach: UpdateResource verwenden.

    Zusammengefasst kann man sagen: ini, xml oder selber was basteln steht zur verfuegung!?

    Dann bleib ich wohl bei dem ini Format

    Greetz


Anmelden zum Antworten