读书人

配置文件是如何读写的

发布时间: 2012-01-20 18:53:53 作者: rapoo

配置文件是怎么读写的
查看部分配置文件,感觉是txt可以打开
vb是如何生成ini配置文件,并读取修改的?
简单举个例子

[解决办法]
这篇文章讲得较明白:
http://hi.baidu.com/runsui/blog/item/eef2ac893d1c7d93a4c27280.html
[解决办法]

探讨
Option Explicit '强制宣告定义变量
'************************************* INI 读写用到的API
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 GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize 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
Dim AppDisk$, IniName$ '定义变量

Private Sub Form_Load()
  '将本地路径赋值给变量 AppDisk
  AppDisk = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
  Command1.Caption = "读 取" '命令按钮1名称
  Command2.Caption = "写 入" '命令按钮2名称
  IniName = AppDisk & "Test.ini" '将INI文件名称带入变量
End Sub

Private Sub Command1_Click()
  If Dir(IniName) = "" Then MsgBox "INI文件不存在!": Exit Sub '判断文件如不存在则提示,并退出这个事件
  Text1.Text = INIRead("UserPass", "UserName", IniName) '将INI文件里面的UserPass项中的UserName段(用户)的内容导入Text1文本框中
  Text2.Text = INIRead("UserPass", "PassWord", IniName) '将INI文件里面的UserPass项中的PassWord段(密码)的内容导入Text2文本框中
End Sub

Private Sub Command2_Click()
  If Text1.Text = "" Or Text2.Text = "" Then MsgBox "请输入用户名与密码!": Exit Sub '用户名与密码如为空值不得保存并退出此事件
  Call INIWrite("UserPass", "UserName", Text1.Text, IniName) '将Text1文本框中的内容写入INI文件里面的UserPass项中的UserName段(用户)
  Call INIWrite("UserPass", "PassWord", Text2.Text, IniName) '将Text2文本框中的内容写入INI文件里面的UserPass项中的PassWord段(密码)
  MsgBox "保存完成!"
End Sub

Public Function INIRead(iAppName As String, iKeyName As String, iFileName As String) As String
  On Error Resume Next '如遇错误则继续往下一行运行
  Dim iStr$, aaa$ '定义变量
  iStr = String(255, Chr(0))
  '使用API Get针对某项某段的内容读进变量aaa
  aaa = Left(iStr, GetPrivateProfileString(iAppName, ByVal iKeyName, "", iStr, Len(iStr), iFileName))
  INIRead = IIf(InStr(aaa, Chr(0)) > 0, Replace(aaa, Chr(0), ""), aaa) '将读取的内容变量aaa里面的Chr(0)(不可见的结尾ASCii码),必需以空字符将它替换掉并返回
End Function

Public Function INIWrite(iAppName As String, iKeyName As String, iKeyString As String, iFileName As String)
  On Error Resume Next
  '使用API WritePrivateProfileString 将字符串写进INI文件里面, 针对某项某段的内容更新
  Call WritePrivateProfileString(iAppName, iKeyName, iKeyString, iFileName)
End Function

读书人网 >VB

热点推荐