För att kunna hantera INI filer för lagring kan man använda s.k. API anrop.
Detta görs genom att deklarera följande funktioner (I en Modul i VB och Access, i början av modulen i Excel):
OBS! Declare satserna skall skrivas på EN rad:
Declare Function GetPrivateProfileInt Lib "Kernel32" Alias
GetPrivateProfileIntA (ByVal lpApplicationName As String,
ByVal lpKeyName As String,
ByVal nDefault As Integer,
ByVal lpFileName As String) As Integer
Declare Function GetPrivateProfileString Lib "Kernel32" Alias
GetPrivateProfileStringA (ByVal lpApplicationName As String,
ByVal lpKeyName As Any,
ByVal lpDefault As String,
ByVal lpReturnedString As String,
ByVal nSize As Integer,
ByVal lpFileName As String) As Integer
Declare Function GetProfileInt Lib "Kernel32" Alias
GetProfileIntA (ByVal lpAppName As String,
ByVal lpKeyName As String,
ByVal nDefault As Integer) As Integer
Declare Function GetProfileString Lib "Kernel32" Alias
GetProfileStringA (ByVal lpAppName As String,
ByVal lpKeyName As Any,
ByVal lpDefault As String,
ByVal lpReturnedString As String,
ByVal nSize As Integer) As Integer
Declare Function WritePrivateProfileString Lib "Kernel32"
Alias WritePrivateProfileStringA (ByVal lpApplicationName As String,
ByVal lpKeyName As Any,
ByVal lpString As Any,
ByVal lplFileName As String) As Integer
Declare Function WriteProfileString Lib "Kernel32" Alias
WriteProfileStringA (ByVal lpApplicationName As String,
ByVal lpKeyName As Any,
ByVal lpString As Any) As Integer
Exempel:
Sub EnProcedur()
' kolla landskoden i WIN.INI
Dim sIniString As String
Dim iLandskod As Integer
Dim dummy As Long
sIniString = Space(255)
' parametrar : sektion, nyckel, default,
' sträng för returvärde, längd på denna
' dvs.
' [intl]
' sLanguage=fin
' raden kollas...
dummy = GetProfileString("intl","sLanguage","fin",sIniString,Len(sIniString))
MsgBox "Land = " & sIniString
' kolla landnummern i WIN.INI
iLandskod = GetProfileInt("intl", "iLanguage", 358)
MsgBox "Landskod = " & iLandskod
' ändra landskoden till sve
dummy = WriteProfileString("intl", "sLanguage", "sve")
' skriv till filen TEST.INI
' kolla sedan om filen har skapats i windows katalogen
' den skapas om den inte finns
dummy = WritePrivateProfileString("testar", "första", "KUL", "TEST.INI")
dummy = WritePrivateProfileString("testar", "andra", "KUL", "TEST.INI")
' läser från filen
dummy = GetPrivateProfileString("testar", "andra", "KUL",sIniString, _
Len(sIniString), "TEST.INI")
' tar bort nyckeln första
' 0& = C:s nul
dummy = WritePrivateProfileString("testar", "första", 0& , "TEST.INI")
' INI filer Cachas för att snabba upp hanteringen
' följande rad ser till att INI filen skrivs till disken
dummy = WritePrivateProfileString(0&, 0&, 0& , "TEST.INI")
' Följande rad skulle ta bort hela testar sektionen om den inte var
' bortkommenterad
' dummy = WritePrivateProfileString("testar", 0&, 0& , "TEST.INI")
End Sub