Práce s INI soubory

Postup:

Struktura INI Souboru je následující:

[APPLICATION]
Status Bar = True
Tool Bar = True

[Main Window]
Top = 127
Left = 22

V hranatých závorkách je uváděna sekce, řádek má strukturu klíč = hodnota.

Do modulu se nejprve musí nadeklarovat následující API funkce pro práci s privátním INI souborem a je vhodné i nadeklarovat proměnnou, která bude udržovat jméno INI souboru přístupné pro celou aplikaci:

Public IniName As String

Declare Function GetPrivateProfileString 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 WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
* každá deklarace musí být napsána na jedné, samostatné řádce.

V deklaracích je význam jednotlivých parametrů následující:

lpApplicationName - jméno sekce
lpKeyName - klíč
lpString - hodnota k uložení
lpDefault - hodnota, která se vrátí když nabyl klíč nalezen
lpReturnedString - hodnota, která se vrátí, byl-li klíč nalezen
nSize - délka pro načítání hodnoty (počet znaků)
lpFileName - jméno INI souboru

Ve spouštěcím formuláři, ve funkci LOAD nadefinujte proměnnou IniName :

IniName = App.Path +”\muj.ini”
'App.Path vrátí cestu, ze které byla aplikace spuštěna

Příklad procedury pro zápis do Ini souboru:

Public Sub UlozDoIni ()

   Dim X As Long
   X = WritePrivateProfileString (“Moje sekce”,”Muj klic”,”moje hodnota”,IniName)

End Sub

Příklad procedury pro čtení z Ini souboru:

Public Sub CtiZIni()

   Dim X As Long
   Dim Extr As String

   
'proměnná pro načtenou hodnotu
   Extr = String (50,0)
   
'bez tohoto řádku to nebude makat
   
X = GetPrivateProfileString (“Moje sekce”,”Muj klic”,”hodnota nenalezena”,Extr,50,IniName)

   End Sub

Pokud není hodnota klíče nalezena, Extr bude obsahovat text “hodnota nenalezena”, jinak bude obsahovat hodnotu klíče do délky 50 znaků (délku můžete předefinovat).

Zpět

Autor: The Bozena