Code-Beispiel
INI-Dateien auslesen
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | Jojo | 03.03.2010 |
So einfach ist es, unter Windows INI-Dateien zu lesen und zu schreiben...
#Define DefaultGroup Mid(Command(0), InstrRev(Command(0), "\") + 1) ' Standardgruppe, wenn kein Gruppenname übergeben wird. In diesem Beispiel entspricht sie dem Namen der EXE-Datei.
' INI-Einstellungen (Deklarationen können auch gerne durch ein einfaches #include "windows.bi" ersetzt werden)
Declare Function GetPrivateProfileStringB Lib "kernel32" Alias "GetPrivateProfileStringA" (Byval lpApplicationName As String, Byval lpKeyName As String, Byval lpDefault As String, Byval lpReturnedString As String, Byval nSize As Long, Byval lpFileName As String) As Long
Declare Function WritePrivateProfileStringB Lib "kernel32" Alias "WritePrivateProfileStringA" (Byval lpApplicationName As String, Byval lpKeyName As String, Byval lpString As String, Byval lpFileName As String) As Long
'Benötigte Funktionen
Function GetValue(Key As String, Default As String = "", Group As String = DefaultGroup, Filename As String = Command(0) + ".ini") As String
Dim TmpRetStr As String * 1280
Dim RetVal As Long
RetVal = GetPrivateProfileStringB(Group, Key, Default & Chr(0), TmpRetStr, Len(TmpRetStr), Filename)
Return Left(TmpRetStr, RetVal)
End Function
Sub SetValue(Key As String, Value As String, Group As String = DefaultGroup, Filename As String = Command(0) + ".ini")
WritePrivateProfileStringB Group, Key, Value, Filename
End Sub
' Testwerte aus der Standard-Gruppe. Dazu muss in der INI-Datei eine Gruppe mit dem Namen der Exe-Datei (z.B. [MeinProgramm.exe]) existieren, bzw. diese wird durch SetValue direkt angelegt.
' Mit einer zuvor leeren INI-Datei sollte die Ausgabe also "Blau", "Rot" sein.
Print GetValue("Farbe", "Blau")
SetValue("Farbe", "Rot")
Print GetValue("Farbe")
SetValue("Farbe", "")
' Testwerte aus einer anderen Gruppe
SetValue("Farbe", "Andere Farbe", "UnterGruppe")
Print GetValue("Farbe", , "UnterGruppe")
Sleep
Die Funktion InstrRev ist erst ab FreeBasic Version 0.18.4b vorhanden. Ein Ersatz für ältere Versionen wurde bereits in einem anderen Artikel besprochen.
Addendum: Aufbau einer INI-Datei
Für all diejenigen, die noch nie so eine INI-Datei in freier Wildbahn gesehen haben, wird hier noch kurz der Aufbau von INI-Dateien angesprochen.
Eine INI-Datei kann so aussehen:
[Einstellungen]
Datei=Test.bmp
Player1=Jojo
Player2=FB
[Punkte]
s1=10000
s2=8000
s3=4000
Zeilen wie [Einstellungen] bezeichnet man als Gruppe (Group im Programm). Alle nachfolgenden Zeilen (bis zu einer weiteren Zeile mit eckigen Klammern) gehören zu dieser Gruppe.
Die nachfolgenden Zeile sind also Schlüssel (Key im Programm), die zu der Gruppe gehören.
Schlüssel haben einen Wert (Value), der letztendlich die Daten speichert.
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|