10.9 Wie greife ich auf INI-Dateien zu?
VB4-VB6
Von: Tobias Schikora [Home]
INI-Dateien (Initialisierungsdateien) wurden vom Betriebssystem Windows 3.1x und von Programmen verwendet, die unter Windows 3.1x laufen, um Daten abzuspeichern und ggf. wieder auszulesen.
Ab Windows 95 sind keine INI-Dateien mehr nötig, die Windows-Registrierung löst diese ab. Trotzdem verwenden noch einige Programme und sogar Windows noch diese INI- Dateien, da sie besser überschaubar und besser editierbar sind, als Einträge in der Windows-Registrierung.
Um auf Werte aus INI-Dateien zu lesen, oder eigene INI-Dateien zu verwenden und Werte darin zu speichern, sind mehrere API-Aufrufe nötig. Hier zuerst die Deklarationen und vereinfachende Methoden:
' Modul "modIniAccess.bas":
Option Explicit
' lesender Zugriff:
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpAppName As String, _
ByVal lpszKeyName As String, ByVal lpszDefault As String, _
ByVal lpszReturnedString As String, ByVal nSize As Long, _
ByVal lpszFileName As String) As Long
' schreibender Zugriff:
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
"WritePrivateProfileStringA" (ByVal lpAppName As String, _
ByVal lpKeyName As String, ByVal lpString As String, _
ByVal lplFileName As String) As Long
Public Function GetIniValue(ByVal Section As String, _
ByVal Key As String, _
ByVal FileName As String, _
Optional ByVal Default As String _
) As String
Dim sKeyValue As String
Dim lChars As Long
sKeyValue = String$(128, 0)
lChars = GetPrivateProfileString(Section, Key, Default, sKeyValue, 127, FileName)
If lChars > 1 Then
sKeyValue = Left$(sKeyValue, lChars)
End If
GetIniValue = sKeyValue
End Function
Public Function WriteIniValue(ByVal Section As String, _
ByVal Key As String, _
ByVal Value As String, _
ByVal FileName As String _
) As Boolean
WriteIniValue = CBool(WritePrivateProfileString(Section, Key, Value, FileName))
End Function
Public Sub DeleteIniKey(ByVal Section As String, _
ByVal Key As String, _
ByVal FileName As String)
WritePrivateProfileString Section, Key, vbNullString, FileName
End Sub
Public Sub DeleteIniSection(ByVal Section As String, _
ByVal FileName As String)
WritePrivateProfileString Section, vbNullString, vbNullString, FileName
End Sub
Sobald sich dieser Code in einem Modul Ihres Projekt befindet, haben sie mittels einfachen Befehlsaufrufen die Möglichkeit auf INI-Dateien zuzugreifen. Hier einige Beispiele der Syntax (Schreibweise):
Wert auslesen: Variable = GetIniValue([Abschnitt], [Zeichenfolge], [Datei]) Wert schreiben: WriteIniValue [Abschnitt], [Zeichenfolge], [Wert], [Datei] INI-Abschnitt löschen: DeleteIniSection [Abschnitt], [Datei] Zeichenfolge mit Wert löschen: DeleteIniKey [Abschnitt], [Zeichenfolge], [Datei]
Sie erkennen schon, dass diese Aufrufe recht simpel sind. Die Zeichen [] stehen nicht für eine optionale Angabe der Parameter, sondern stehen hier als Platzhalter.