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.