可以使用VB调用系统API函数 GetPrivateProfileString 来从ini文件中读取一条或全部数据。
申明方式如下:
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 LonglpApplicationName:欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表。
lpKeyName:欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表。
lpDefault:指定的条目没有找到时返回的默认值。可设为空("")。
lpReturnedString:指定一个字串缓冲区,长度至少为nSize。
nSize:指定装载到lpReturnedString缓冲区的最大字符数量。
lpFileName:初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件。
利用系统API函数 GetPrivateProfileString 可以方便地读取ini文件。使用方法如下
(1)MyApp.INI文件的内容为
VB程序读取这个ini文件,将窗口的标题换为Title指定的字符串
(2)新建一个VB工程
(3)Form1窗体代码
Option ExplicitPrivate Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringW" _
(ByVal lpApplicationName As Long, _
ByVal lpKeyName As Long, _
ByVal lpDefault As Long, _
ByVal lpReturnedString As Long, _
ByVal nSize As Long, _
ByVal lpFileName As Long) As Long
'------------
'读INI文件
'------------
Private Function GetValueFromINIFile(ByVal SectionName As String, _
ByVal KeyName As String, _
ByVal IniFileName As String) As String
Dim strBuf As String
'128个字符,初始化时用 0 填充
strBuf = String(128, 0)
GetPrivateProfileString StrPtr(SectionName), _
StrPtr(KeyName), _
StrPtr(""), _
StrPtr(strBuf), _
128, _
StrPtr(IniFileName)
'去除多余的 0
strBuf = Replace(strBuf, Chr(0), "")
GetValueFromINIFile = strBuf
End Function
Private Sub Form_Load()
Dim title As String
'读取INI文件中指定的节和节/键
'节的名称:AppName
'键名称:Title
title = GetValueFromINIFile("AppName", "Title", "c:\MyApp.INI")
Me.Caption = title
End Sub
(4)运行效果
窗口的标题被设置Ini文件指定的字符串!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)