classIniFile.cls的內容:
Option Explicit
'--------classIniFile.cls 代碼---------------- '這里定義了一個classIniFile類 '一個絕對經典的在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中的內容:
Option Explicit
'一個絕對經典的在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文件名,并寫入一些初始數據 DemoIni.INIFileName = App.Path & "\demoini.ini" DemoIni.WriteIniKey "系統", "啟動路徑", App.Path DemoIni.WriteIniKey "系統", "可執行程序文件名", App.EXEName '顯示保存到.ini文件中的數據 Call CmdRead_Click End Sub
'退出程序 Private Sub CmdExit_Click() Unload Me End Sub
'讀取.ini文件中已經存在的數據并顯示出來 Private Sub CmdRead_Click() Dim TestStr As String List1.Clear TestStr = DemoIni.GetIniKey("系統", "啟動路徑") List1.AddItem "系統 - 啟動路徑: " & TestStr TestStr = DemoIni.GetIniKey("系統", "可執行程序文件名") List1.AddItem "系統 - 可執行程序文件名: " & TestStr TestStr = DemoIni.GetIniKey("用戶自定義", "用戶數據") List1.AddItem "用戶自定義 - 用戶數據: " & TestStr End Sub
'保存用戶自定義數據到.ini文件中 Private Sub CmdSave_Click() DemoIni.WriteIniKey "用戶自定義", "用戶數據", Text1.Text '顯示保存到.ini文件中的數據 Call CmdRead_Click End Sub
'清除用戶自定義段和段中數據 Private Sub CmdDelete_Click() DemoIni.DelIniKey "用戶自定義", "用戶數據" DemoIni.DelIniSec "用戶自定義" '顯示保存到.ini文件中的數據 Call CmdRead_Click End Sub
|