INI-Dateien und deren Handling
 Info  
Von : Wolfgang Kluge
 Zusatz  
Download (687B)
Printfreundliche Ansicht
Läßtig,...man schreibt an einem größerem Projekt und merkt immer mehr, daß bestimmte Variablen (und die vermehren sich bekanntlich ja auch wie die R.....) Kundenbezogen sind, und einfach nicht mit einprogrammiert werden dürfen. (Ist sozusagen ständig akut).

Doch wohin mit den Variablen? Einfach in eine Textdatei?? Oder doch in die Registry??
Das beste Handling bieten (wieder mal meine eigene persönliche Meinung) INI-Files. Sie sind (hoffentlich) da, wo sie auch hingehören, sind leicht zu editieren und lassen auch ein bedenkenloses Backup zu. Ausserdem wird die sagenumworbene Registry nicht mit riesigen Datenmengen überlastet...

Also gut, genug der Worte...jetzt folgen taten...
Das Modul, welches hier zum Download bereitgestellt wird, ist klein, hat nur wenige Funktionen und ist auch nicht schwer zu verstehen.
Damit dieses Modul immer mit eingebunden werden kann, sollte man es in den Unterordner Templates\Modules\(falls nicht vorhanden:erstellen) kopieren. Danach steht es immer zur Auswahl, wenn man ein neues Modul einfügen will (tolle Sache).

Apropos Auswahl,...zur Auswahl, nachdem man das Modul eingebunden hat, steht einem Folgendes:

EigenschaftBeschreibung
INIFileNameDie 'Eigenschaft' INIFileName (eigentlich ists eine globale Variable) muß entweder explizit vorgegeben (gesamter Pfad) oder Leergelassen werden(wenn Leer, dann wird App.Path + App.Title angenommen)

MethodeBeschreibung
INILesenINILesen (Key As String[, Paragraph As String = "Allgemein"]) As String

Ist als einzigstes auch wirklich als Funktion Deklariert.
Als Übergabewerte wird nur Key erwartet. Dann allerdings wird der Wert im Paragraphen 'Allgemein' gesucht.
Rückgabewert ist ein Wert vom Typ String
INISchreibenINISchreiben (Key As String[, Value As String = ""][, Paragraph As String = "Allgemein"])

Auch hier wird nur der Key erwartet. Macht allerdings recht selten Sinn (ich hab schon eine Anwendung gefunden...) nichts in eine 'Variable' zu schreiben. Also gibts dazu auch noch Value (Datentyp String). Man kann natürlich auch selbst einen Paragraphen vorgeben, dient aber letztendlich nur zur übersichtlichkeit. Standard ist Allgemein.
Wenn versucht wird einen Wert in eine INI-Datei zu schreiben, die nicht vorhanden ist, so wird diese angelegt.
ParaLesenParaLesen (Paragraph As String)

Etwas Fortgeschrittener gehts bei den Para´s zu. Aber nur was die VB-Generation angeht. (ab VB6.0, es ist aber ein leichtes dies umzuschreiben, um auch VB4 und 5 damit zu begnügen)
Die Funktion schreibt in das Globale String-Array ParaArray alle Key´s und zugehörige Values aus einem Paragraphen. Das Datenfeld fängt bei 0 an. Um den größten Index zu bekommen benötigt man die Funktion UBound(). Kann allerdings auch mit For...Each Schleifen umgangen werden.
ParaSchreibenParaSchreiben (Paragraph As String, Paras As String)

Überschreibt den gesamten Paragraphen mit den neuen Werten. Erwartet wird ein Datenfeld, das durch vbNullString getrennt ist. Um die Werte später wieder auslesen zu können sollte man sich an die Konventionen einer INI-Datei halten. D.h. man sollte nach dem gleichen Muster vorgehen, als wenn man jeden Wert einzeln angiebt (Key=Value)

Als Para bzw. Paragraph werden die Abschnitte(Section) bezeichnet, die in INI-Files an den eckigen Klammer erkennbar sind.
Als Key werden die Variablennamen bezeichnet (Linke Seite)
Als Value, wie könnte es auch anders sein, sind die Werte gemeint.

 Beispiel:
INISchreiben "Variable1", "Wert1"
INISchreiben "Variable2", "Wert2"
INISchreiben "Variable1", "Wert3", "Paragraph1"

MsgBox INILesen("Variable1")
MsgBox INILesen("Variable2")
MsgBox INILesen("Variable1", "Paragraph1")



 So sieht danach die Ini-Datei aus:
[Allgemein]
Variable1=Wert1
Variable2=Wert2
[Paragraph1]
Variable1=Wert3