你知道读写txt文件不,读写ini文件的操作完全可以用读写txt文件的操作来代替,或者用WritePrivateProfileString API 函数也可以达到你的要求
用FSO对象,将INI文件一次性读入文本框控件中,编辑完成后,再一次性写入INI文件中.
你搜索 “vb ini文件操作”
好心人来了读调用 Text1.text = inifile.ReadString("aa", "bb", 10)写调用 X = inifile.WriteString("aa", "bb", strtext)'********************************************************************** 'INI读写类模块 '********************************************************************** Option ExplicitPrivate IniFileName As String Public ErrorMsg As StringPrivate Declare Function GetPrivateProfileInt Lib "kernel32" _ 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" _ 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" _ Alias "WritePrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long '写入成功返回非0值Public Property Let IniName(ByVal vData As String) IniFileName = Trim(vData) End PropertyPublic Property Get IniName() As String IniName = IniFileName End PropertyPrivate Sub Class_Initialize() IniFileName = vbNullString ErrorMsg = vbNullString End SubPrivate Function NoIniFile() As Boolean NoIniFile = True If IniFileName = vbNullString Then ErrorMsg = "没有指定 INI 文件" Exit Function End If ErrorMsg = vbNullString NoIniFile = False End Function'参数一为段名,参数二为键名,参数三为要写入的值,返回值为布尔值表示写入字符串成功或失败 Public Function WriteString(Section As String, key As String, Value As String) As Boolean WriteString = False If NoIniFile() Then Exit Function End If If WritePrivateProfileString(Section, key, Value, IniFileName) = 0 Then ErrorMsg = "写入失败" Exit Function End If WriteString = True End Function'参数一为段名,参数二为键名,参数三为要读取的字符串大小,返回值为读取结果字符串 Public Function ReadString(Section As String, key As String, Size As Long) As String Dim ReturnStr As String Dim ReturnLng As Long ReadString = vbNullString If NoIniFile() Then Exit Function End If ReturnStr = Space(Size) ReturnLng = GetPrivateProfileString(Section, key, vbNullString, ReturnStr, Size, IniFileName) ReadString = Left(ReturnStr, ReturnLng) End Function'参数一为段名,参数二为键名,返回值为读取结果值 Public Function ReadInt(Section As String, key As String) As Long Dim ReturnLng As Long ReadInt = 0 ReturnLng = GetPrivateProfileInt(Section, key, 0, IniFileName) If ReturnLng = 0 Then ReturnLng = GetPrivateProfileInt(Section, key, 1, IniFileName) If ReturnLng = 1 Then ErrorMsg = "不能读取" Exit Function End If End If ReadInt = ReturnLng End Function'检测INI文件是否存在,不存在则自动建立默认INI文件。参数一为INI文件路径,参数二为INI文件默认内容 Public Sub chkINI(iniPath As String, cf As String) 'Dim FSO As FileSystemObject, TS As TextStream Dim FSO As Object Dim TS As Object Set FSO = CreateObject("Scripting.FileSystemObject") If Not FSO.FileExists(iniPath) Then Set TS = FSO.CreateTextFile(iniPath) TS.Write cf TS.Close Set TS = Nothing End If Set FSO = Nothing End Sub
'INI读写类模块
'**********************************************************************
Option ExplicitPrivate IniFileName As String
Public ErrorMsg As StringPrivate Declare Function GetPrivateProfileInt Lib "kernel32" _
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" _
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" _
Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long '写入成功返回非0值Public Property Let IniName(ByVal vData As String)
IniFileName = Trim(vData)
End PropertyPublic Property Get IniName() As String
IniName = IniFileName
End PropertyPrivate Sub Class_Initialize()
IniFileName = vbNullString
ErrorMsg = vbNullString
End SubPrivate Function NoIniFile() As Boolean
NoIniFile = True
If IniFileName = vbNullString Then
ErrorMsg = "没有指定 INI 文件"
Exit Function
End If
ErrorMsg = vbNullString
NoIniFile = False
End Function'参数一为段名,参数二为键名,参数三为要写入的值,返回值为布尔值表示写入字符串成功或失败
Public Function WriteString(Section As String, key As String, Value As String) As Boolean
WriteString = False
If NoIniFile() Then
Exit Function
End If
If WritePrivateProfileString(Section, key, Value, IniFileName) = 0 Then
ErrorMsg = "写入失败"
Exit Function
End If
WriteString = True
End Function'参数一为段名,参数二为键名,参数三为要读取的字符串大小,返回值为读取结果字符串
Public Function ReadString(Section As String, key As String, Size As Long) As String
Dim ReturnStr As String
Dim ReturnLng As Long
ReadString = vbNullString
If NoIniFile() Then
Exit Function
End If
ReturnStr = Space(Size)
ReturnLng = GetPrivateProfileString(Section, key, vbNullString, ReturnStr, Size, IniFileName)
ReadString = Left(ReturnStr, ReturnLng)
End Function'参数一为段名,参数二为键名,返回值为读取结果值
Public Function ReadInt(Section As String, key As String) As Long
Dim ReturnLng As Long
ReadInt = 0
ReturnLng = GetPrivateProfileInt(Section, key, 0, IniFileName)
If ReturnLng = 0 Then
ReturnLng = GetPrivateProfileInt(Section, key, 1, IniFileName)
If ReturnLng = 1 Then
ErrorMsg = "不能读取"
Exit Function
End If
End If
ReadInt = ReturnLng
End Function'检测INI文件是否存在,不存在则自动建立默认INI文件。参数一为INI文件路径,参数二为INI文件默认内容
Public Sub chkINI(iniPath As String, cf As String)
'Dim FSO As FileSystemObject, TS As TextStream
Dim FSO As Object
Dim TS As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(iniPath) Then
Set TS = FSO.CreateTextFile(iniPath)
TS.Write cf
TS.Close
Set TS = Nothing
End If
Set FSO = Nothing
End Sub