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 WriteToIni(ByVal Key As String, ByVal Value As String, Optional ByVal Section As String = "IniDefSection") On Error Resume Next Dim buff As String * 128 buff = Value + Chr(0) WritePrivateProfileString Section, Key, buff, GetIniFileName End SubPublic Function ReadFromIni(ByVal Key As String, Optional ByVal Section As String = "IniDefSection") As String On Error Resume Next Dim i As Long Dim buff As String * 128 GetPrivateProfileString Section, Key, "", buff, 128, GetIniFileName i = InStr(buff, Chr(0)) ReadFromIni = Trim(Left(buff, i - 1)) End Function 上面是读写INI文件函数 保存连接参数 WriteToIni("ServerIP","Database Connection",Server IP or Name) WriteToIni("DBName","Database Connection",Database Name) WriteToIni("UserID","Database Connection",UserID) WriteToIni("Password","Database Connection",Password)if ReadFromIni("ServerIP","Database Connection")="" Or ReadFromIni("DBName","Database Connection")="" Or ReadFromIni("UserID","Database Connection")="" then 让用户输入用户名和密码以及IP
GetIniFileName'是INI文件名称 这个文件是可以自动生成的,当你读或写的时候
可是我测试的时候,没有自动生成INI文件啊?
Private Sub Form_Load()If ReadFromIni("ServerIP", "Database Connection") = "" Then ServerIP = InputBox("请输入IP地址") Call WriteToIni("ServerIP", "Database Connection", ServerIP) End IfEnd Sub 是这样的吗?
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 WriteToIni(ByVal Key As String, ByVal Value As String, Optional ByVal Section As String = "IniDefSection")
On Error Resume Next
Dim buff As String * 128
buff = Value + Chr(0)
WritePrivateProfileString Section, Key, buff, GetIniFileName
End SubPublic Function ReadFromIni(ByVal Key As String, Optional ByVal Section As String = "IniDefSection") As String
On Error Resume Next
Dim i As Long
Dim buff As String * 128
GetPrivateProfileString Section, Key, "", buff, 128, GetIniFileName
i = InStr(buff, Chr(0))
ReadFromIni = Trim(Left(buff, i - 1))
End Function
上面是读写INI文件函数
保存连接参数
WriteToIni("ServerIP","Database Connection",Server IP or Name)
WriteToIni("DBName","Database Connection",Database Name)
WriteToIni("UserID","Database Connection",UserID)
WriteToIni("Password","Database Connection",Password)if ReadFromIni("ServerIP","Database Connection")="" Or ReadFromIni("DBName","Database Connection")="" Or ReadFromIni("UserID","Database Connection")="" then
让用户输入用户名和密码以及IP
这个文件是可以自动生成的,当你读或写的时候
ServerIP = InputBox("请输入IP地址")
Call WriteToIni("ServerIP", "Database Connection", ServerIP)
End IfEnd Sub
是这样的吗?
GetIniFileName改为文件名如"C:\connection.ini"
不用,通过WriteToIni函数会写进去的
ServerIP=Database Connection
写进去的格式是这样的?
UserID=Database ConnectionIf ReadFromIni("UserID", "Database Connection") = "" Then
UserID = InputBox("请输入用户名:")
Call WriteToIni("UserID", "Database Connection", UserID)
End If为什么FORM LOAD的时候还是要输入用户名?
应是
WriteToIni("ServerIP",Server IP or Name,"Database Connection")