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 = 1234Bedeutet
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