This class module will allow you to easily work with INI files.
This will let you store settings and preferences for your program that are persistent between runs. You can download the attachment above, or copy and paste the below chunk of code to a new class module in your project.
Option Explicit
'API
Private Declare Function GetPrivateProfileInt Lib "kernel32.dll" Alias "GetPrivateProfileIntA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal nDefault As Long, _
ByVal lpFileName As String _
) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String _
) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String _
) As Long
Private sFile As String
Public Sub Create(sFile_ As String)
sFile = sFile
End Sub
Public Property Get Data(sSection_ As String, sKey_ As String) As Integer
Data = GetPrivateProfileInt(sSection_, sKey_, -1, sFile)
End Property
Public Property Let Data(sSection_ As String, sKey_ As String, iData As Integer)
Dim sData As String
sData = iData_
WritePrivateProfileString sSection_, sKey_, sData, sFile
End Property
Public Property Get Text(sSection_ As String, sKey_ As String) As String
Dim sText As String
Dim lResult As Long
sText = String$(255, 0)
lResult = GetPrivateProfileString(sSection_, sKey_, "", sText, Len(sText), sFile)
If lResult = 0 Then
Text = ""
Else
Text = Left(sText, InStr(sText, Chr(0)) - 1)
End If
End Property
Public Property Let Text(sSection_ As String, sKey_ As String, sText As String)
WritePrivateProfileString sSection_, sKey_, sText_, sFile
End Property
Attachments
File | Uploaded | Size |
---|---|---|
936-20190920-105359-CINI.cls | 9/20/2019 10:53:59 AM | 2270 |