Чтение и запись INI файлов
Данный пример демонстрирует работу с функциями GetPrivateProfileString и WritePrivateProfileString. Функции очень удобны для работы с текстовыми файлами формата INI. Благодаря этим функциям, не нужно думать об инициализации и освобождении всяких хенлов...
Платформа: Windows
Автор: Jojo
#DEFINE DefaultGroup Mid ( Command ( 0 ) , Instrrev ( Command ( 0 ) , "\" ) + 1 ) ' Standardgruppe, wenn kein Gruppenname ubergeben wird. In diesem Beispiel entspricht sie dem Namen der EXE-Datei. ' INI-Einstellungen (Deklarationen konnen 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 'Benotigte 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 (zB [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