bas 模块中:
' ini读写
Public 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
Public 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
'从IniFile中读数据
Function ReadIniFile(FileName As String, AppName As String, KeyName As String) As String
On Error GoTo Err_ReadIniFile
Dim temp As String * 1024, n As Integer, I As Integer
n = GetPrivateProfileString(AppName, KeyName, "", temp, 1024, FileName)
ReadIniFile = Mid(temp, 1, n)
n = InStr(ReadIniFile, Chr(0))
If n > 1 Then ReadIniFile = Left(ReadIniFile, n - 1)
Exit Function
Err_ReadIniFile:
If MsgBox("错误:" & Err.Description & vbCrLf & "是否继续?", vbYesNo + vbQuestion + vbDefaultButton1, "错误处理") = vbYes Then Resume Next
End Function
'写数据到ini中
Function WriteIniFile(FileName As String, AppName As String, KeyName As String, NewKeyName As String)
On Error Resume Next
Dim n As Long
n = WritePrivateProfileString(AppName, KeyName, NewKeyName, FileName)
End Function
'获取ini文件
Function GetIniFile(Optional FileName As String, Optional FilePath As String)
Dim IniFileName As String, mm As Integer
1 On Error GoTo Err_GetIniFile
'-------------------------------------
2 If FilePath = "" Then
3 IniFileName = App.Path
4 mm = InStrRev(IniFileName, "\")
5 If mm > 1 Then
6 IniFileName = Left(IniFileName, mm)
7 Else
8 IniFileName = IniFileName & "\"
9 End If
10
11 Else
12 IniFileName = FilePath
13 End If
14 IniFileName = IIf(FileName = "", IniFileName & "HTWYIniData.ini", IniFileName & FileName)
15 GetIniFile = IniFileName
'-------------------------------------
16 On Error GoTo 0
17 Exit Function
Err_GetIniFile:
18 If MsgBox("【错误代码】:" & Err.Number & vbCrLf & "【错误描述】:" & Err.Description & vbCrLf & "【出错位置】: [LocalConfig]→ [GetIniFile]的 " & Erl & "行" & vbCrLf & "是否继续?", vbYesNo + vbQuestion + vbDefaultButton1 + vbMsgBoxSetForeground, "错误处理") = vbYes Then Resume Next
End Function
调用:
IniFileName = GetIniFile("\iniData.ini", App.Path)
'读ini
iniTmp = ReadIniFile(IniFileName, "配置规则", "规则")
If iniTmp <> "" Then
Text_Menu.Text = Replace(iniTmp, "※※", "※" & vbCrLf & "※")
End If
'写ini
Call WriteIniFile(IniFileName, "配置规则", "规则", Replace(strTmp, vbCrLf, ""))