26. April 2024

C++ INI-Dateien verwenden

INI-Dateien sind ein sehr praktisches Werkzeug um schnell kleine Konfigurationen abzuspeichern. Sie bieten gegenüber XML einen klaren Vorteil: Sie sind einfach. Allerdings muss man bedenken, dass sie deshalb nicht unbedingt für komplizierte Datensätze geeignet sind. Ein Anwendungsgebiet wäre zum Beispiel das Abspeichern von Einstellungen für ein Computerspiel (Bildschirmauflösung, Sound ja/nein, …).

Aufbau von INI-Dateien

Eine INI kann prinzipiell mit jedem Texteditor erstellt und bearbeitet werden, da sie als reiner Text abgespeichert wird. Strukturiert wird eine INI folgendermaßen:

[kategorie1]
variable1=73
variable2=42

[kategorie2]
variable=usw

Auslesen von INI-Dateien mit C++

Um INIs auszulesen hält C++ eine einfache Lösung parat. Zu beachten ist bei dieser, dass der absolute Pfad der INI benötigt wird. Wie man diesen ermittelt erfahren Sie hier: C++ Aktuellen Pfad ermitteln.

Die Vorgehensweise an einem Codebeispiel:

#include <windows.h>
//...
#define WERT_BEI_LESEFEHLER (0) //Falls die Datei nicht gelesen werden kann wird der Wert 0 zur�ckgegeben

char pfad[256] = "C:\\Beispiel.ini"; //der absolute Pfad zur INI
int variable; //Die Variable die mit einem Wert belegt werden soll

variable = GetPrivateProfileInt("kategorie1",
                                "variable1", 
                                WERT_BEI_LESEFEHLER , 
                                pfad); 
//'variable' wird hier nach dem obigen Beispiel mit 73 (int) belegt 

Beachten Sie: Mit GetPrivateProfileInt können nur Integer ausgelesen werden!

Schreiben von INI-Dateien mit C++

Auch zum Schreiben von INIs ist C++ gerüstet und auch hier wird der absolute Pfad der INI benötigt: C++ Aktuellen Pfad ermitteln.

Um mit C++ in eine INI zu schreiben ist folgender Code notwendig:

#include <windows.h>
//...

char pfad[256] = "C:\\Beispiel.ini"; //der absolute Pfad zur INI

WritePrivateProfileString("kategorie1",
                          "neueVariable",
                          "Hallo!",
                          pfad);
//In der INI ist jetzt eine neue Variable in [kategorie1] angelegt worden 

Achtung: Diesmal wurde WritePrivateProfileString verwendet!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert