Objekt "einfach" durch Stringvergleiche initialisieren



  • Guten Tag,

    ich habe eine Klasse, die hat verschiedene Attribute. Z.B. so:

    class B {
    public:
    int wert1, hallo, DiesUndDas;
    };
    
    class A {
    public:
    B arrB[20];
    };
    

    Eine Instanz von A (z.B. gA) wird jetzt durch Auslesen einer ini-Datei initialisiert. In der Inidatei steht z.B.

    [B17]
    hallo = 99
    DiesUndDas = 1234
    

    Bedeutet

    gA.arrB[17].hallo = 99;
    gA.arrB[17].DiesUndDas = 1234;
    

    Da für wert1 jetzt kein Eintrag vorhanden war, bleibt der wert1 jetzt halt unverändert. Meine Frage wäre jetzt, ob das Zuweisen nicht einfacher geht als in einer riesigen Abfrage:

    if(key == "hallo") {
         gA.arrB[id].hallo = value;
    } else if(key == "DiesUndDas" ) {
         gA.arrB[id].DiesUndDas = value;
    } else if(key == "wert1") {
         gA.arrB[id].wert1= value;
    } else if { // usw.
    
    } else {
      // Fehler
    }
    


  • Schau dir ggf. mal Boost.PropertyTree an: http://www.boost.org/doc/libs/1_51_0/doc/html/property_tree.html#boost_propertytree.intro

    da ist auch ein ini-parser dabei 😉



  • und wenn du boost nicht verwenden möchtest, such einfach nach beiträgen von werner salomon und ini parser. dann solltest du auch was finden


Anmelden zum Antworten