INI 文件 test.ini 放在同目录下,内容:[aaa]
agent=BBBBBBVB 里模块: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 LongPublic Sub read_ini()
Dim read_agent As String
If Dir("test.ini")="" then 'If Dir(App.Path & "test.ini") = "" Then
MsgBox "找不到文件"
End If
read_agent = String(255, 0)
GetPrivateProfileString "aaa", "agent", "", read_agent, 255, "test.ini"
'read_agent = Replace(read_agent, "0", "")
Debug.Print "read_agent=" & read_agent
End Sub窗口:
Private Sub Form_Load()
read_ini
End Sub出不来结果: read_agent=
另外我如果用 If Dir(App.Path & "test.ini")="" then 则提示找不到文件,这是什么道理?看似很简单的东东,搞了一整天..... 是不是还要引用什么的?
agent=BBBBBBVB 里模块: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 LongPublic Sub read_ini()
Dim read_agent As String
If Dir("test.ini")="" then 'If Dir(App.Path & "test.ini") = "" Then
MsgBox "找不到文件"
End If
read_agent = String(255, 0)
GetPrivateProfileString "aaa", "agent", "", read_agent, 255, "test.ini"
'read_agent = Replace(read_agent, "0", "")
Debug.Print "read_agent=" & read_agent
End Sub窗口:
Private Sub Form_Load()
read_ini
End Sub出不来结果: read_agent=
另外我如果用 If Dir(App.Path & "test.ini")="" then 则提示找不到文件,这是什么道理?看似很简单的东东,搞了一整天..... 是不是还要引用什么的?
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
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 GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPublic Function ReadFromIni(ByVal Filename As String, ByVal Section As String, ByVal key
As String) As String
Dim I As Long
Dim buff As String * 128
GetPrivateProfileString Section, key, "", buff, 128, Filename
I = InStr(buff, Chr(0))
ReadFromIni = Trim(Left(buff, I - 1))
End Function上面的函数调用方式为:
MarName = ReadFromIni(App.Path + "\Option.ini", "Market", "Name")
GetPrivateProfileString 里面也要这样写。
Text1.Text = GetINI("aaa", "agent")
End SubFunction GetINI(appname As String, ByVal keyname As String) As String
Dim RetStr As String
RetStr = String(1000, Chr(0))
FileName = "d:/a.ini"
GetINI = Left(RetStr, GetPrivateProfileString(appname, ByVal keyname, "", RetStr, Len(RetStr), FileName))End Function