INI schreiben und lesen

@Comfreek: Das ist doch das selbe Prinzip
while(unverarbeitete bytes hinter der Einfügestelle) {read, seek, write, seek}
 
Hallo,

ich habe vor einiger Zeit eine Klasse zum auslesen und schreiben von ini Dateien geschrieben. (Zur Vollständigkeit, die Klasse basiert auf der C-Implementierung von dieser Tutorial-Seite.

Ich habe sie mal angehängt, falls du interesse hast diese zu nutzen.

Viele Grüße,
Jennesta
 

Anhänge

  • IniReader.rar
    3 KB · Aufrufe: 11
Ich werds mal ausprobieren, danke :)

EDIT: Wie soll ich es den Benutzen?
Code:
IniReader::loadIni(
und dann?
 
Zuletzt bearbeitet:
Hallo,

eigentlich ist das nicht schwer. Gehen wir mal von folgender ini Datei "config.ini" aus:

Code:
#Ini file generated by inireader

[section1]
test=1
hallo=bumsi

[section2]
w=640
h=480
j=3

Folgende main-Funktion habe ich mir zum testen geschrieben:

C++:
int main(int argc, char **argv)
{
	cout << "IniReader testing application\n" << endl;

	IniReader reader;
	reader.loadIni(std::string("config.ini"));

	reader.printDictionary();

	cout << "\n" << reader.setDouble("config.ini", "section3", "banane", 2.34) << endl;
	cout << reader.getInt("config.ini", "section2", "w", 3) << "\n" << endl;

	reader.printDictionary();

	reader.saveIni(std::string("config.ini"));

	getchar();
	return 0;
}

Du hast hier die Klasse reader, die du mit einzelnen ini Dateien füttern kannst. Jede als Dictionary bezeichnet. Die set- und get-Methoden erwarten jeweils das Dictionary in dem geschrieben oder gesucht werden soll, sowie die Section und den Key (ggf default-Wert falls nichts gefunden wird). Ich hoffe der Rest ist selbst erklärend. Die Funktionen sind doppelt ausgelegt, sodass du mit C-Strings aber auch mit Strings arbeiten kannst.
Beim speichern wird die ini Datei komplett überschrieben mit dem Aktuellen Dictionary.

Die Klasse ist sicher nicht so mächtig wie z.B. die Windows-Alternative, aber für mal eben ganz schnell ausreichend.
Bei weiteren Fragen, bitte gerne melden.

Grüße,
Jennesta
 
Zuletzt bearbeitet:
Zurück