'
【VB源码推荐:一个操作Ini文件的类】
' --------cIniFile.cls 代码----------------
' 这里定义了一个cIniFile类
Option Explicit
' // Private member that holds a reference to
' // the path of our ini file
Private strInI As String
' // Win 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
Public Sub CreateIni(strDrv As String , strDir As String )
' // Make a new ini file
strInI = MakePath(strDrv, strDir)
End Sub
Public Sub WriteFile(strSection As String , _
strKey As String , _
strValue As String )
' // Write to strINI
WritePrivateProfileString strSection, _
strKey, strValue, strInI
End Sub
Public Function GetFile(strSection As String , _
strKey As String ) As String
Dim strTmp As String
Dim lngRet As String
strTmp = String $( 100 , Chr ( 32 ))
lngRet = GetPrivateProfileString(strSection, _
strKey, "" , strTmp, _
Len (strTmp), strInI)
GetFile = strTmp
End Function
Public Property Let INIFile(ByVal New_IniPath As String )
' // Sets the new ini path
strInI = New_IniPath
End Property
Public Property Get INIFile() As String
' // Returns the current ini path
INIFile = strInI
End Property
' --------cIniFile.cls 使用举例----------------
Dim myIniFile As New cIniFile
' ---指定访问的ini文件
If Len (App.Path) > 3 Then
' under disk root dir , eg: "C:"
myIniFile.INIFile = App.Path & " setting.ini "
Else
myIniFile.INIFile = App.Path & " setting.ini "
End If
' ---写入ini文件
myIniFile.WriteFile " setting " , " username " , strUser
' ---读出ini文件的数据
' 注意,如果是字符串,则去掉末尾一个字符
' ----flybird@chinaasp.com
strUser = Trim (myIniFile.GetFile( " setting " , " username " ))
strUser = Left (strUser, Len (strUser) - 1 )
' --------cIniFile.cls 代码----------------
' 这里定义了一个cIniFile类
Option Explicit
' // Private member that holds a reference to
' // the path of our ini file
Private strInI As String
' // Win 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
Public Sub CreateIni(strDrv As String , strDir As String )
' // Make a new ini file
strInI = MakePath(strDrv, strDir)
End Sub
Public Sub WriteFile(strSection As String , _
strKey As String , _
strValue As String )
' // Write to strINI
WritePrivateProfileString strSection, _
strKey, strValue, strInI
End Sub
Public Function GetFile(strSection As String , _
strKey As String ) As String
Dim strTmp As String
Dim lngRet As String
strTmp = String $( 100 , Chr ( 32 ))
lngRet = GetPrivateProfileString(strSection, _
strKey, "" , strTmp, _
Len (strTmp), strInI)
GetFile = strTmp
End Function
Public Property Let INIFile(ByVal New_IniPath As String )
' // Sets the new ini path
strInI = New_IniPath
End Property
Public Property Get INIFile() As String
' // Returns the current ini path
INIFile = strInI
End Property
' --------cIniFile.cls 使用举例----------------
Dim myIniFile As New cIniFile
' ---指定访问的ini文件
If Len (App.Path) > 3 Then
' under disk root dir , eg: "C:"
myIniFile.INIFile = App.Path & " setting.ini "
Else
myIniFile.INIFile = App.Path & " setting.ini "
End If
' ---写入ini文件
myIniFile.WriteFile " setting " , " username " , strUser
' ---读出ini文件的数据
' 注意,如果是字符串,则去掉末尾一个字符
' ----flybird@chinaasp.com
strUser = Trim (myIniFile.GetFile( " setting " , " username " ))
strUser = Left (strUser, Len (strUser) - 1 )