boost::program_options und die Praxis..



  • Möchte an dieser Stelle mal ein kleines Feedback zu boost::property_tree abgeben:
    Prinzipiell ist property_tree ne sehr feine Sache, aber lohnt sich nicht wirklich, wenn man ein Format hat das keine echte Hierachie besitzt und man sich einen Parser selber schreiben muss.
    Bei mir sah es am Ende so aus, dass ich quasi alles selber geschrieben habe und der property_tree unnötig war, habe dann einfach eine map< string, string > genommen.
    Der Value ist als string, damit er leichter wieder gespeichert werden kann, was bei boost::any ja nur schwer möglich ist.



  • Was macht ihr für komplezierte Sachen ?
    Nehmt einfach einen XML-Parser und speichert solche config-Sachen in einen XML-Baum. Ich benutze für meine Programme seit Ewigkeiten jdom ( Java ) für Datenabspeicherung.
    Dann habt ihr eine saubere Abspeicherung:

    <config>
        <programmpfad>C:\My Programs\Fooo\</programmpfad>
        <hintergrund>C:\Meine Dokumente\Bilder\programmbild.jpg</hintergrund>
    </config>
    

    so als Beispiel.



  • Ja, nur ein normaler Benutzer findet ein vollbild = ein einfacher als eine xml-datei zu bearbeiten, das schreckt die Mehrheit ja schonmal ab, weil es kompliziert aussieht.
    Deswegen verwende ich da lieber eine einfachere Syntax.



  • Normalerweise sollten auch normal Sterbliche nicht in meinen Config-Dateien rumpfuschen. Alles was der Benutzer einstellen kann biete ich als einen Dialog an.

    das schreckt die Mehrheit ja schonmal ab, weil es kompliziert aussieht.

    Das ist doch ein Pluspunkt bei Config-Dateien.

    Aber da deine Benutzer in der Config-Datei rumschreiben müssen, bist du bestimmt ein Linux-Anwender. Ich stell mal die These auf: Wer Linux zum laufen bringt, kann auch XML bearbeiten.
    Ausserdem ist XML auch nur Text.

    <config>
        <vollbild>ein</vollbild>
    </config>
    

    Naja stimmt, XML ist sehr kompliziert 🙄



  • DEvent schrieb:

    Normalerweise sollten auch normal Sterbliche nicht in meinen Config-Dateien rumpfuschen. Alles was der Benutzer einstellen kann biete ich als einen Dialog an.

    typisch für schlechte windows-software.

    Wer Linux zum laufen bringt, kann auch XML bearbeiten.

    man kann, aber man will nicht.



  • typisch für schlechte windows-software.

    das musst du mir mal erklären 😕



  • DEvent schrieb:

    typisch für schlechte windows-software.

    das musst du mir mal erklären 😕

    Ich kann zwar nur fuer mich sprechen, aber:
    IMO sollte das Programm an & fuer sich nur jene Einstellungsmoeglichkeiten bieten, die jeder DAU versteht. Un wer mehr veraendern will, schaut sich eben in der Konfig-Datei um.



  • Blue-Tiger schrieb:

    DEvent schrieb:

    typisch für schlechte windows-software.

    das musst du mir mal erklären 😕

    Ich kann zwar nur fuer mich sprechen, aber:
    IMO sollte das Programm an & fuer sich nur jene Einstellungsmoeglichkeiten bieten, die jeder DAU versteht. Un wer mehr veraendern will, schaut sich eben in der Konfig-Datei um.

    Ja das war doch meine Rede (Text).
    In den Dialogen stelle ich die Konfiguration meines Programmes bereit. Wer mehr verändern will, der muss doch eh die Doku der config.dat anschauen.

    Naja ich wollt nur sagen, benutzt einfach einen XML-Parser für die Config-Sachen.



  • DEvent schrieb:

    typisch für schlechte windows-software.

    das musst du mir mal erklären 😕

    Von vielen Windows-Programmen ist man es gewohnt, die Einstellungen mit der Maus machen zu müssen, während die Konfiguration binär verschlüsselt ist. Ok, XML ist Text, aber trotzdem unangenehm zu bearbeiten.

    Naja ich wollt nur sagen, benutzt einfach einen XML-Parser für die Config-Sachen.

    Und ich wollte sagen, benutzt statt XML lieber ein von Menschen gut editierbares Format.

    Es geht ja um Einstellungen die der Benutzer machen darf und nicht um Daten die nur irgendwie gespeichert werden müssen.



  • Von vielen Windows-Programmen ist man es gewohnt, die Einstellungen mit der Maus machen zu müssen, während die Konfiguration binär verschlüsselt ist. Ok, XML ist Text, aber trotzdem unangenehm zu bearbeiten.

    Einstellungen von einem Programm war nie verschlüsselt. Früher waren es die .ini Dateien, jetzt sind es meinst Reg-Schlüssel in der Windows-Registry.
    Naja bin halt einer von diesen GUI-Verwöhnten, im 21. Jahrhundert lebenden User und nicht Text-is-the-Best-and-Only-Linux-Benutzer.



  • DEvent schrieb:

    Naja bin halt einer von diesen GUI-Verwöhnten, im 21. Jahrhundert lebenden User und nicht Text-is-the-Best-and-Only-Linux-Benutzer.

    s/Verwöhnt/Gebunden/
    Und von only war ja keine Rede.

    Aber egal. Fazit: Du schlägst XML vor und ich finds unpassend.


Anmelden zum Antworten