Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Suche Linux Klasse für Konfigurationen ein ....

  1. #1
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    Suche Linux Klasse für Konfigurationen ein ....

    Ich suche für Linux eine Klasse die mir dabei behilflich ist Konfiguration Dateien einzulesen. Für gewöhnlich ist in Linux der Syntax einer Config wie im Code dargestellt. Ich weiß jetzt nicht ob es dafür unter Linux vorgefertigte Methoden oder Klassen gibt. Für einen Tip währe ich dankbar.
    Code:
    # Kommentar
    vari=wert
    Mein Anwendung basiert C++ mit Kde/Qt
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    In Qt gibts genau dafür die Klasse QSettings.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Hab da auch mal was geschrieben. In C (nicht C++) und auch nur weil mir langweilig war. Denn wie gesagt, es gibt schon genug APIs dafür (z.B. in Qt).
    Aber wenns't eine Lösung haben wills't, die nur von ANSI-C abhängig ist, dann ist meine Lösung vieleicht was für dich.
    Also was ich schrieb, setzt sich aus 3 Sachen zusammen: Einen String-Puffer, einen AVL-Baum und einen Config-Parser, der die beiden anderen Sachen verwendet.
    In conf/example.c siehs't wie man's verwendet. Es kann natürlich nur Strings als Typ der gespeicherten Werte. Eine Config-Datei kann so ausschaun:
    Code:
    # Kommentar
    [gruppe1]
    option1 = "foo bar"
    option2 = foo
    
    [gruppe2]
    bla = bla
    bleh = "bleh"
    
    # etc.
    Hmm, da fällt mir auf, Optionen, die in keiner Gruppe sind, werden von mir nicht unterstüzt. Vieleicht mach ich das noch.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  4. #4
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Ok, hab's jetzt um den Support für globale Optionen erweitert.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  5. #5
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    @peschmae
    Genau das habe ich gesucht, manchmal ist man blind, ich habe ständig unter config gesucht.

    @panzi
    Wenn du mit Gruppen arbeitest sie dir mal unter KDE die KConfigSkeleton an.
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  6. #6
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Zitat Zitat von undefined
    @panzi
    Wenn du mit Gruppen arbeitest sie dir mal unter KDE die KConfigSkeleton an.
    Ich brauch sowas eigentlich garnicht. Mir war einfach wieder nur mal faad.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  7. #7
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von undefined
    Ich weiß jetzt nicht ob es dafür unter Linux vorgefertigte Methoden oder Klassen gibt. Für einen Tip währe ich dankbar.

    Mein Anwendung basiert C++ mit Kde/Qt
    KConfig bzw KSimpleConfig

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819

  9. #9
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Also irgendwie bekomme ich es nicht gebacken. Ich habe Sicherlich einen Denkfehler. Weder KSimpleConfig noch QSettings geben mir einen Wert zurück.
    Code:
    void Konfiguration::startRead( QString& i )
    {
            QMap<QString, QString> item = entryMap( QString::null );
            kdDebug() << "KSimpleConfig: " << i << " => " << item[i] << endl;
    
            QSettings settings;
            settings.resetGroup();
            QString Eintrag = settings.readEntry( "/etc/mplayer.conf", i );
            kdDebug() << "QSettings: " << Eintrag << endl;
    }
    [EDIT]
    PS: Wenn ich in die mplayer.conf ein Gruppentag einfüge Funktioniert es.

    mfg undefined
    Geändert von undefined (17-05-2005 um 12:07 Uhr)
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    QSettings kannst dir schenken, das geht nur auf Dateien in .qt/

    KSimpleConfig sollte glaub ich schon gehen, die Defaultgroup sollte für mplayer.conf passen

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Leider nein, ich habe jetzt auch in der Online Doku gefunden das KConfig expliziet eine Gruppen Angabe benötigt. Habe es jetzt anders gemacht in dem ich eine Temporäre config erstelle in diese ein Gruppen Tag einfüge, damit geht es jetzt. Schade - werde mich mal bei Gelegenheit hinsetzen und mir eine Klasse für so etwas schreiben.
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  12. #12
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Zitat Zitat von undefined
    Leider nein, ich habe jetzt auch in der Online Doku gefunden das KConfig expliziet eine Gruppen Angabe benötigt. Habe es jetzt anders gemacht in dem ich eine Temporäre config erstelle in diese ein Gruppen Tag einfüge, damit geht es jetzt. Schade - werde mich mal bei Gelegenheit hinsetzen und mir eine Klasse für so etwas schreiben.
    Oder verwende meine.
    Bzw. portier Sie nach C++.
    Da musst eingentlich nur mehr einen Parser schreiben, speichern kannst es in einer std::map< std::string, std::map< std::string, std::string> >. Hmm, die Globalen sachen speichere dann halt unter der Gruppe "" oder so. Oder mach ne Klasse:
    Code:
    class Config {
    public:
       std::map< std::string, std::map< std::string, std::string> > groups;
       std::map< std::string, std::string > globals;
    };
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •