INI schreiben und lesen

Hunter

Erfahrenes Mitglied
Hallo,

da die "Hauseigene" Funktion der WinAPI nicht funktioniert wollte ich mal frage, mit welcher Funktion ich am leichtesten und effizientesten arbeiten kann.

WriteProfileSection() ist ja nur für 16-Bit Programme, oder lässt sich das auch irgendwie mit 32-Bit nutzen?


MfG :)
 
Die Winapi funktioniert normalerweise schon, wenn man sie richtig verwendet.
Was hast du denn versucht?
 
Code:
WriteProfileSection("settings.ini", "data");
Laut MSDN sind diese Funktionen aber nur mit 16Bit-Applikationen kompatibel. Hab auch schon mit den anderen Funktionen probiert, erfolglos.
 
Das Zeug ist nur deswegen praktisch aufgegeben,
weil MS die Leute zur Verwendung der Registry zwingen will.

Eine ini-Datei auslesen kann man auch recht einfach selbst machen,
wenn man "sichere" Funktionen verwenden will.

Datei auf
Zeile für Zeile durchgehen.
Wenn Teil vor = der gesuchte Name ist ist der Teil nach = der Wert.
Datei zu.

Wenn man auch noch [...]-Sektionen unterstützen will wirds etwas umständlicher.
 
Ja das lesen selbst glaub ich ist nicht unbedingt das schwierigste, nur das schreiben:
Das erste mal alles vollschreiben und wir dann ändern? da stellt sich mir die große Frage. Da könnte ich dann ja die gesamte Datei auslesen und dann den zu ändernden Wert raussuchen, löschen und dann nochmal beschreiben..
Nur leider wüsste ich auch dort nicht wie icb mitten im Text anfangen kann zu schreiben, da ich mich derzeit noch nicht mit lesen und schreiben wirklich auseinandergesetzt habe.

MfG :)
 
Einfach alles neuschreiben. Ich glaube nicht, dass die ganzen Bibliotheken das anders machen.

wxWidgets nutzt auch WriteProfileSection() und die anderen INI WinApi-Funktionen intern.
 
Nur leider wüsste ich auch dort nicht wie icb mitten im Text anfangen kann zu schreiben
Praktisch gar nicht.
Es ist (ohne Neuschreiben) nicht möglich, Text/Daten generell einzufügen oder rauszulöschen,
so dass alles danach weiter nach hinten/vorne geschoben wird.
Am Ende der Datei gehts, weil danach nichts mehr ist;
aber dazwischen drin kann man nur überschreiben.
In deinem Fall bringt das nur was, wenn der neue Wert
immer gleich viel Buchstaben/Byte hat wie der Alte.
...
Also, solang die ini-Datei nicht groß wird (im Bereich 10MB, 100MB, GB...),
einfach alles auslesen, ändern, und neu schreiben.
Falls sie so groß wird sollte man sich sowieso überlegen, ob eine Ini-Datei das Richtige ist.
 
Das geht für mich in dem Fall nicht so gut, denn ich entwickle momentan ja nicht auf Unix. Aber trotzdem danke für den Link, den könnte ich ggf. nochmal brauchen :)
 
Zurück