在软件开发中保存一些简单的配置或数据,一般要么是选择保存在ini配置文件中,要么是选择保存在注册表中。给用户用时尽量简单明了,注册表操作安全软件会提示,因此为避免不必要的麻烦,就选择保存到ini文件中。
用API读写一个ini文件,即配置文本是比较简单的,只要一行代码或几行代码,下面看如何读写ini文件。
首先在窗体模块中,输入API相关代码:
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
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
然后在窗体画一个按钮1,点击事件代码如下,这个代码是用来写一个ini文件:
Private Sub Command1_Click()
Dim write1 As Long
'参数一: Section Name (节的名称)。
'参数二: 节下面的项目名称。
'参数三: 项目的内容。
'参数四: ini配置文件的路径名称。
write1 = WritePrivateProfileString("工程部", "经理", "张三", App.Path & "\set1.ini")
write1 = WritePrivateProfileString("工程部", "技术员", "李四", App.Path & "\set1.ini")
write1 = WritePrivateProfileString("工程部", "工人", "王五", App.Path & "\set1.ini")
write1 = WritePrivateProfileString("市场部", "经理", "刘备", App.Path & "\set1.ini")
write1 = WritePrivateProfileString("市场部", "售后前台", "关羽", App.Path & "\set1.ini")
write1 = WritePrivateProfileString("市场部", "业务员", "张飞", App.Path & "\set1.ini")
End Sub
编译这段代码为EXE后,运行,点击按钮1就会在当前目录下生成一个ini文件,此ini文件内容如下:
[工程部]
经理=张三
技术员=李四
工人=王五
[市场部]
经理=刘备
售后前台=关羽
业务员=张飞
------------------------------
如果上面的ini文件已经存在,那如何读出来呢?很简单,用GetPrivateProfileString函数,只需要一行代码,先再画一个按钮2,点击事件代码如下,这个代码是用来读ini文件:
Private Sub Command2_Click()
Dim read_OK As Long
Dim read2 As String
read2 = String(255, 0)
read_OK = GetPrivateProfileString("市场部", "经理", "参数3", read2, 256, App.Path & "\set1.ini")
'若.ini文件中项目无内容,则采用参数3的值,如果你在ini路径名称写错了,也读不出内容,也是会参数3的值。
MsgBox read2
read_OK = GetPrivateProfileString("宣传部", "经理", "没有找到相关内容", read2, 256, App.Path & "\set1.ini")
MsgBox read2
End Sub
编译好后,点击按钮2,首先会弹出的信息框内容是“刘备”,因为刚开始是要读出市场部经理的内容,看来是正确读出来了。但是后面出现的信息框却是 "没有找到相关内容",为何,这是因为在ini文件中,根本没有宣传部这个项目,当然读不出结果出来,因此,就去读参数3的内容了。