INI - Dateien schreiben & lesen
In Initialisierungsdateien lassen sich Programmeinstellungen ablegen, die beim erneuten Programmaufruf als Grundeinstellung ausgelesen werden. INI Dateien sind Textdateien, die mit einem besonderen Zugriffsmechanismus ausgestattet sind. Im Gegensatz zu gewöhnlichen Textdateien, die nur von oben nach unten interpetiert werden können, werden in INI - Dateien durch deren priviligierte Struktur die interessierenden Information direkt adressiert.
Die Erstellung der INI Datei erfolgt nach folgendem Muster:
;Kommentar
[Sektion]
Key0 = Wert
Key1 = Wert
;Kommentar
[Sektion 2]
Key0 = Wert
usw.
Sektionen dienen der Unterteilung und Strukturierung der INI Datei. Sie werden mit eckigen Klammern umschlossen.
[ ] = codieren eine Sektion
Keys = sind Schlüssel innerhalb einer Sektion
";" = leiten Kommentare ein, die aber nicht direkt hinter einem Schlüssel stehen dürfen
Jede Sektion innerhalb der INI Datei und jeder Schlüssel innerhalb einer Sektion darf nur einmal vorkommen. Der Zugriff auf die Werte erfolgt mittels Sektion und Schlüssel. Interpretiert werden die INI - Dateien, indem innerhalb einer Sektion der Wert an Stelle eines Schlüssels ausgelesen wird. Umgekehrt erfolgt das Schreiben der INI - Dateien durch die Operation: Schreib an der Stelle des Keys folgenden Wert.
INI Dateien waren für die Betriebssystemverwaltung unter Windows 3.1 Standard. Neuere Windowsversionen nutzen die Registry oder das Benutzerprofil im Anwendungsdatenverzeichnis (NT).
Für eigene Programme eignet sich die Verwaltung der Programminfos in INI Dateien nach wie vor hervorragend, denn Schreiben und Lesen der Textdateien erfolgt unabhängig von der Benutzerverwaltung. Zudem obliegt die Ressourcenverwaltung beim Programmierer, womit unnötige "Leichen" in der Registry nach Deinstallation des Anwenderprogramms vermeidbar sind.
1. INI Dateien schreiben
Die Funktion FileOpenASCII() erzeugt oder öffnet eine Textdatei zum Schreib- oder Lesezugriff. Anschließend erzeugt die Funktion FileLineWrite() die geforderte Dateistruktur mit den entsprechenden Inhalten. Wichtig ist auch das Schließen der geöffneten Datei mit FileClose() am Ende.
Die im gewünschten Zielverzeichnis erzeugte INI - Beispieldatei:
2. INI Datei auslesen
Zum Auslesen öffnen wir die INI Datei mit FileOpenASCII(). Beim Auslesen mit der Funktion FileLineRead() behandeln wir die Sektionen als Gruppe. Der Vorteil: alle Standard-Funktionen stehen zum Auswerten einer Gruppe zur Verfügung.
Mit TxWo() detektieren wir die Position der eckigen Klammern, die den Sektionsnamen umschließt, um anschließend den Sektionsnamen mit TTeil() zwischen den Klammern als _GruppenName auszulesen. Mit GrNeu() erzeugen wir so die leere Datengruppe, die dem Inhalt (codiert durch spitze Klammern <>), der Textvariable _GruppenName entspricht.
Anschließend erfolgt das Auslesen der Schlüssel unter der jeweiligen Sektion. Mit TxWo() detektieren wir das Gleichheitszeichen. Ausgehend von dieser Position "schneiden" wir den Namen des Keys (Textvariable _Schlüssel) vor dem Gleichheitszeichen und dessen Wert mit TTeil() als Text vom Gleichheitszeichen aus bis zum Ende des Textstrings (bestimmt durch die Funktion TLang()) aus der jeweiligen Zeile.
Der Inhalt der Textvariablen _Schlüssel, also der Variablennamen, und dessen Wert, wird der entsprechenden Gruppe zugewiesen (Gruppenzuweisung der Variable codiert durch :).
Das Auslesen erfolgt in einer Schleife, bis alle Keys einer Sektion ausgelesen sind. Das Auslesen der weiteren Sektionen erfolgt ebenfalls solange in einer Schleife, bis alle Sektionen erfasst wurden. Am Ende muss die INI Datei mit FileClose() wieder geschlossen werden.


SINEWS Services |
Sequenzen, Tutorials, Artikel
