明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

一個絕對經(jīng)典的在VB中設(shè)置.ini文件的通用類源代碼

[摘要]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