012
05.09.2003, 16:01 Uhr
virtual
Sexiest Bit alive (Operator)
|
Zunächst solltest Du Dir überlegen, wie Du die Struktur eines INI Files eigentlich abbilden willst. Ich denke, du solltest Dir zu diesem Zweck mal std::map und std::string anschauen, zwei Templates aus der STL. Eine einfache map, die Strings auf Values mapped, sieht zB so aus:
C++: |
std::map<std::string, std::string> mapSettings;
mapSettings["key"] = "value"; // Wert setzen std::string value = mapSettings["key"]; //Wert lesen
|
(Der geneigte Leser verzeihe bitte das inperformante, aber dafür leserliche Beispiel). Natürlich mußt Du bedenken, daß ein INI File aus ganz vielen solchen Maps besteht; genauer gesagt aus einer Map von maps. Normalerweise wird man mindestens aus der map, die die anderen enthält, eine eigene Klasse machen. Ich würde sogar dazu tendieren, auch aus obiger Map eine eigene Klasse zu machen. Wenn Du die Struktur weist, die du verwenden willst, kannst Du dir mal std::fstream anschauen, damit kann man mit Dateien arbeiten.
C++: |
std::ifstream eingabe("Dateiname"); // Erstelle unf öffne Input datei std::string line; std::getline(eingabe, line); // Lese ganze Zeile aus Datei ....
|
bzw.
C++: |
std::ofstream ausgabe("Dateiname"); // Erstelle unf öffne Ausgabe datei std::string line ="Ich bin zwei Öltanks"; ausgabe<<line<<std::endl; ....
|
Meistens wird man das alles in einer Schleife abfackeln und wissen wollen, ob zB die Eingabe funktioniert hat, oder das Streamende erreicht ist:
C++: |
if (!eingabe) { /* Irgendwas ist krumm */ } if (eingabe.eof()) { /* Dateiende erreicht */ }
|
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) Dieser Post wurde am 05.09.2003 um 16:02 Uhr von virtual editiert. |