Win32-Programmierung mit VC++ und der Win-Api

3.4 - INI-Dateien auslesen und Werte als Variablen zuweisen

Nehmen wir an, unsere Programmeinstellungen (Setup, Einstellungen) sollen in einer Ini-Datei gespeichert und ausgelesen werden. Wie machen wir das?

Unsere Setup.ini sieht so aus:

[dbconnection]
dbuser=root
dbpass=mypassword
dbhost=localhost
dbname=mydbname

Der Datenbankusername wäre also “root”, dessen Passwort “mypassword”, usw. Das ganze befindet sich unter der Rubrik “dbconnection”, eingeleitet durch die eckigen Klammern.

Um nun in die Variable dbusername vom Typ char den Wert einzulesen benutzt man folgende Funktion:

GetPrivateProfileString("dbconnection", "dbuser", "defaultwert", dbusername, size, "./setup.ini");

Die Funktion GetPrivateProfileString öffnet die Datei “./setup.ini”. Bitte beachtet die “./” vor “setup.ini”. Das bedeutet, dass die setup.ini im selben Verzeichnis wie unser Programm liegt und nicht im Windows-Verzeichnis.

Der erste übergebene Wert ist die Rubrik (dbconnection), dannach erfolgt die Variable “dbuser” die wir abfragen wollen und letztendlich wird der Wert von dbuser in die Variable “dbusername” mit der Länge “size”.

Schlägt irgendwas fehl, so wird für die Variable “dbusername” der Standardwert “defaultwert” angenommen.

Das wars zum Variablen einlesen. Nun zum Variablen-wert schreiben.

Um einen anderen usernamen zu speichern, wählen wir folgende Funktion:

WritePrivateProfileString("dbconnection", "dbuser", "newDbUserName", "./setup.ini" );

Folgende Funktion speichert den Wert “newDbUserName” in die Datei setup.ini für den Key dbuser unter der Rubrik dbconnection.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getprivateprofilestring.asp

Codesnippet

// -----------------------------------
char dbuser[255];
DWORD size=255;
// -----------------------------------

GetPrivateProfileString("dbconnection", "dbuser", "defaultwert", dbuser, size, "./setup.ini");
MessageBox(hwnd,dbuser,"Value of dbuser:", MB_OK);