ini文件读写一问,代码如下

klj218 2006-01-24 03:28:13

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

Public 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
WritePrivateProfileString Section, Key, buff, App.Path & "\set.ini"
End Sub

Public 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
GetPrivateProfileString Section, Key, "", buff, 128, App.Path & "\set.ini"
i = InStr(buff, Chr(0))
ReadFromIni = Trim(Left(buff, i - 1))
End Function

...全文
204 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zx123 2006-01-24
  • 打赏
  • 举报
回复
是写反了的原因
正确的应为
WriteToIni("UserID",UserID,"Database Connection")
zou19820704 2006-01-24
  • 打赏
  • 举报
回复
ReadFromIni("UserID", "Database Connection") 没有值
faysky2 2006-01-24
  • 打赏
  • 举报
回复
在你的ConncetDB函数里,ReadFromIni("UserID", "Database Connection") 是读取Section(就只用[]括起来的内容)为Database Connection,key值(就是=号前面的内容)为UserID的值

比如,在Ini文件里的内容是:
[Database Connection]
UserID=XXXX

那么ReadFromIni("UserID", "Database Connection") 得到的内容就是XXXX


为什么每次FORM LOAD都要输入用户名?
----------------------------------
因为这个条件不成立( If ReadFromIni("UserID", "Database Connection") <> "" Then)
,原因是你的ini文件里没有以下内容:
[Database Connection]
UserID=XXXX

所以每次Form_Load的时候,都要输入用户名
klj218 2006-01-24
  • 打赏
  • 举报
回复
msgbox 出来是空
linkinwork 2006-01-24
  • 打赏
  • 举报
回复
调试一下ReadFromIni函数。看看他到底有没有取到值
klj218 2006-01-24
  • 打赏
  • 举报
回复
set.ini中的内容:
[sssdsd]
UserID=Database Connection

求教,为什么每次FORM LOAD都要输入用户名?
klj218 2006-01-24
  • 打赏
  • 举报
回复
Function ConncetDB()
If ReadFromIni("UserID", "Database Connection") <> "" Then
MsgBox ("pass")
Else
UserID = InputBox("请输入用户名:")
Call WriteToIni("UserID", "Database Connection", UserID)
End If

End Function

Private Sub Form_Load()
Call ConncetDB
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧