VB如何循环读取ini

[1]
a=123
b=456
[2]
a=123
b=456
[3]
a=123
b=456
[4]
a=123
b=456
[5]
a=123
b=456
如何循环读取每个节的参数到list
注:节点有多少未知,不仅仅只有这5个

第1个回答  2012-12-22
每一节的读法,有疑问:
第一种读法:
list1.additem “a=123" & "b=456"
第二种读法:
list1.additem “a=123"
list1.additem "b=456"
第三种读法:
list1.additem “123" & "456"
第四种读法:
list1.additem “123"
list1.additem "456"
。。。。。。
你要哪种?
无论是哪种,都要先读取INI中的文本。
我没有代码,可我有思路:
1、打开文件,准备输入到内存中。
2、逐行读取文件内容,逐一判断一行文本的第一个字符。
3、发现 [ ,即可,连续读取两行内容,加载到LIST中。
4、关于 循环,建议使用do...loop 其中,可用 EOF() 判断文件读取位置是否到达结束。
第2个回答  2012-12-22
这个很容易,可参考下新书
老兵新传:Visual Basic核心编程及通用模块开发(清华大学出版社)
第十章有专门的介绍(第10章 玩转注册表,换汤不换药——简化ini文件和注册表编程),其代码可不加修改直接调用,立即就能用起来!

例如,关于你的问题,代码就是下面这样简单:

for i=1 to 5
list1.additem GetIni(cstr(i), "a")
list1.additem GetIni(cstr(i), "b")
next i

其中GetIni是书中的通用模块的代码,只要把通用模块添加到工程就可以了,什么改造代码都不用你管,连API函数的声明都不用追问

如果现在不知道有多少了节,该如何修改?

追答

i=1

a$=GetIni(cstr(i), "a")
b$=GetIni(cstr(i), "b")
do while a$"" or b$""
list1.additem a$
list1.additem b$

i=i+1

a$=GetIni(cstr(i), "a")
b$=GetIni(cstr(i), "b")
loop
也不复杂吧?

本回答被提问者和网友采纳
第3个回答  2012-12-21
可以编写一个函数,当用参数时就去调用这个函数 不能用do 循环吗?