一個絕對經(jīng)典的在VB中設(shè)置.ini文件的通用類源代碼
發(fā)表時間:2024-02-10 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]classIniFile.cls的內(nèi)容:Option Explicit'--------classIniFile.cls 代碼----------------'這里定義了一個classIniFile類'一個絕對經(jīng)典的在VB中操作.ini文件的通用類源代碼'程序編寫...
classIniFile.cls的內(nèi)容:
Option Explicit
'--------classIniFile.cls 代碼----------------
'這里定義了一個classIniFile類
'一個絕對經(jīng)典的在VB中操作.ini文件的通用類源代碼
'程序編寫:中國青島·許家國
' 2002.6.16
'E-Mail: goj2000@163.com
'HomePage: http://www.gojclub.com
'
'Private member that holds a reference to
'the path of our ini file
Private strINI As String
'Windows API Declares
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private 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 Long, _
ByVal lpFileName As String) As Long
Private Function MakePath(ByVal strDrv As String, ByVal strDir As String) As String
' Makes an INI file: Guarantees a sub dir
Do While Right$(strDrv, 1) = "\"
strDrv = Left$(strDrv, Len(strDrv) - 1)
Loop
Do While Left$(strDir, 1) = "\"
strDir = Mid$(strDir, 2)
Loop
' Return the path
MakePath = strDrv & "\" & strDir
End Function
Private Sub CreateIni(strDrv As String, strDir As String)
' Make a new ini file
strINI = MakePath(strDrv, strDir)
End Sub
Public Sub WriteIniKey(strSection As String, strKey As String, strValue As String)
' Write to strINI
WritePrivateProfileString strSection, strKey, strValue, strINI
End Sub
Public Function GetIniKey(strSection As String, strKey As String) As String
Dim strTmp As String
Dim lngRet As String
Dim I As Integer
Dim strTmp2 As String
strTmp = String$(1024, Chr(32))
lngRet = GetPrivateProfileString(strSection, strKey, "", strTmp, Len(strTmp), strINI)
strTmp = Trim(strTmp)
strTmp2 = ""
For I = 1 To Len(strTmp)
If Asc(Mid(strTmp, I, 1)) <> 0 Then
strTmp2 = strTmp2 + Mid(strTmp, I, 1)
End If
Next I
strTmp = strTmp2
GetIniKey = strTmp
End Function
Public Property Let INIFileName(ByVal New_IniPath As String)
' Sets the new ini path
strINI = New_IniPath
End Property
Public Property Get INIFileName() As String
' Returns the current ini path
INIFileName = strINI
End Property
'***************************************清除KeyWord"鍵"(Sub)***********************************************
Public Function DelIniKey(ByVal SectionName As String, ByVal KeyWord As String)
Dim RetVal As Integer
RetVal = WritePrivateProfileString(SectionName, KeyWord, 0&, strINI)
End Function
'如果是清除section就少寫一個Key多一個""。
'**************************************清除 Section"段"(Sub)***********************************************
Public Function DelIniSec(ByVal SectionName As String) '清除section
Dim RetVal As Integer
RetVal = WritePrivateProfileString(SectionName, 0&, "", strINI)
End Function
Form1中的內(nèi)容:
Option Explicit
'一個絕對經(jīng)典的在VB中操作.ini文件的通用類源代碼示例程序
'程序編寫:中國青島·許家國
' 2002.6.16
'E-Mail: goj2000@163.com
'HomePage: http://www.gojclub.com
'定義一個.ini類型的變量
Dim DemoIni As New classIniFile
Private Sub Form_Load()
'對控件進行初始化
Text1.Text = "測試一下"
List1.Clear
'定義.ini文件名,并寫入一些初始數(shù)據(jù)
DemoIni.INIFileName = App.Path & "\demoini.ini"
DemoIni.WriteIniKey "系統(tǒng)", "啟動路徑", App.Path
DemoIni.WriteIniKey "系統(tǒng)", "可執(zhí)行程序文件名", App.EXEName
'顯示保存到.ini文件中的數(shù)據(jù)
Call CmdRead_Click
End Sub
'退出程序
Private Sub CmdExit_Click()
Unload Me
End Sub
'讀取.ini文件中已經(jīng)存在的數(shù)據(jù)并顯示出來
Private Sub CmdRead_Click()
Dim TestStr As String
List1.Clear
TestStr = DemoIni.GetIniKey("系統(tǒng)", "啟動路徑")
List1.AddItem "系統(tǒng) - 啟動路徑: " & TestStr
TestStr = DemoIni.GetIniKey("系統(tǒng)", "可執(zhí)行程序文件名")
List1.AddItem "系統(tǒng) - 可執(zhí)行程序文件名: " & TestStr
TestStr = DemoIni.GetIniKey("用戶自定義", "用戶數(shù)據(jù)")
List1.AddItem "用戶自定義 - 用戶數(shù)據(jù): " & TestStr
End Sub
'保存用戶自定義數(shù)據(jù)到.ini文件中
Private Sub CmdSave_Click()
DemoIni.WriteIniKey "用戶自定義", "用戶數(shù)據(jù)", Text1.Text
'顯示保存到.ini文件中的數(shù)據(jù)
Call CmdRead_Click
End Sub
'清除用戶自定義段和段中數(shù)據(jù)
Private Sub CmdDelete_Click()
DemoIni.DelIniKey "用戶自定義", "用戶數(shù)據(jù)"
DemoIni.DelIniSec "用戶自定義"
'顯示保存到.ini文件中的數(shù)據(jù)
Call CmdRead_Click
End Sub