当前位置:编程学习 > VB >>

VB6 如何 读取 ini 文件里某一键值里所有内容

如:在D:\INI文件.ini   
文件文件内容是
[A]
a1=1
a2=2
a3=4
...
我想把A下面的全部值(记录条数不确定)读取出来,然后利用ListBox控件分条显示出来
1
2
4
在读取的时候A下面的记录条及子键名称不确定的情况进行,有多少就读多少,请问该怎么做,目前可以单条读取数据 ini vb 所有记录 --------------------编程问答-------------------- 用这个 API 取回段下所有的 Key 值。小心 Buffer 的大小要足够。

Public 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
--------------------编程问答-------------------- 大体操作思路是:
1,新建一类模块,声明(public)一个string变量,一个一维数组,一个空数组,引用API函数;
2,读取.ini文件里的内容,把每个值赋值给一维数组,然后这些一维数组组合成一个字符串,每个数组用逗 号","分开;
3,在窗体中,利用split给空数组赋值;
4,最后再把赋了值的数组的值添加到ListBox里。

这样一来,如果日后要有所增减.ini文件里的条目,只需在类模块里做相应更改即可;

希望对你有所帮助。 --------------------编程问答-------------------- VB编写的Inf文件处理组件,包含使用范例
http://download.csdn.net/detail/supermanking/5100921 --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 用 GetPrivateProfileSection ,在搜搜。祝成功。 --------------------编程问答--------------------
Dim fs, f1,f2,s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f1 = fs.OpenTextFile("D:\INI文件.ini", 1,0)
Do While f1.AtEndOfLine <> True
    s = f1.readline 
    if trim(s)="[A]" then
     exit do
    end if
Loop 
Do While f1.AtEndOfLine <> True
    s = f1.readline 
    f2=instr(s,"=")
    if f2>0 then
     list1.add mid(s,f2+1)
    else
     exit do
    end if
Loop
f1.close
set f1=nothing
--------------------编程问答-------------------- 需要用带api: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 Function ReadOneString(ByVal section As String, ByVal key As String) As String
    Dim X As Long, buff As String * 128, i As Integer
    X = GetPrivateProfileString(section, key, " ", buff, 128, App.Path & "\setup.ini")
    i = InStr(buff, Chr(0))
    ReadOneString = Trim(Left(buff, i - 1))
End Function --------------------编程问答-------------------- 要枚举一个节下所有的关键字,可以用API,也可以自己写个代码来读.

我这里就有一个自己写代码读的例子:

http://www.m5home.com/bak_blog/article/541.html

这个类可以枚举节名称,以及节下面的关键字名称,并取得值
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,