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=4000Zeilen 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 | |||||||
|---|---|---|---|---|---|---|---|
| 
 
 | |||||||

 Wer ist online?
 Wer ist online? Buchempfehlung
 Buchempfehlung
 FreeBASIC-Chat
 FreeBASIC-Chat
 FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
			FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us! Bearbeiten
 Bearbeiten Versionen
 Versionen