1、 API声明调用
VB操作ini文件需要通过windows的API来操作。Windows提供了两个API函数对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 GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
这两个API返回值都是Long类型,非零表示成功,零表示失败,并设置 GetLastError 。
2、 写ini文件——WritePrivateProfileString
关于对ini文件的读写操作,提供的API中有很多参数,对于工程应用来说,逐个解释即繁琐又无必要,下面直接以实例展示出来,再标注下需要注意的地方。
Private Sub Command1_Click()
Dim writeOK As Long
'参数一: Section Name (段的名称)。
'参数二: 节下面的键名称。
'参数三: 键值的内容。
'参数四: ini配置文件的路径名称。
writeOK = WritePrivateProfileString("Option", "name", "张三", ".\version.ini")
End Sub
注:
参数类型:除了段的名称和ini文件名称外,键值对的参数类型不固定,可为任意类型。但在文本形式存储格式中,建议统一存储
成字符串格式。
文件:在写文件名时候,建议用相对路径代替绝对路径,即使用".",便于程序移植。使用上述API写ini文件时,该目录下不存在
该文件,则会创建新文件写入。
360截图20210125130627034.jpg
360截图20210125131211150.jpg
3、读ini文件——GetPrivateProfileString
Private Sub Command2_Click()
Dim readOK As Long
Dim str As String
'参数一: Section Name (段的名称)。
'参数二: 节下面的键名称。
'参数三: 找不到键值时候填充的默认值。
'参数四: 接收键值的字符串数组。
'参数五: 从键值中获取几个字符。
'参数六: ini配置文件的路径名称。
str = String(260, 0) '字符数组
readOK = GetPrivateProfileString("Option", "name", "默认值", str, 260, ".\version.ini")
Debug.Print str
End Sub
注:
字符数组:参数4必须为字符数组,便于操作可将其设为定长字符数组。
字符数:参数5是从键值中截取的字符数,英文占1个字符,中文占2个字符,每个字符串结束后还有一个’\0‘,都需要计算进
去。
360截图20210125131945186.jpg