找回密码
 加入
搜索
查看: 6977|回复: 9

[已解决]listview列表中多项目怎样从INI中读取数据?

[复制链接]
发表于 2009-8-27 22:40:11 | 显示全部楼层 |阅读模式
本帖最后由 jycel 于 2009-8-29 10:16 编辑

解决方法:8楼
如上图:怎样从配置文件中读取所有内容到列表中
我试了下只能读取等号前面的也就是字段名下的关键值,后面的值无法读取
配置文件如:
[Maclist]
00-E0-61-15-C5-43=A001|192.168.0.11|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启
00-E0-61-16-12-01=A002|192.168.0.12|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启
00-E0-61-15-C8-DC=A003|192.168.0.13|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启

        $n=0
        $var = IniReadSection($ini, "Maclist")
        For $i = 1 To $var[0][0]
                _GUICtrlListView_AddItem ($ListView1, $var[$i][0], $n)
                $var0=IniRead($ini,"Maclist",$var[$i][0],"")
    Next

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-8-28 15:19:25 | 显示全部楼层
你不要把问题提得这么得绕人好不好,先研究下你INI文件的数值有没问题
发表于 2009-8-28 15:42:00 | 显示全部楼层
iniread.inireadsection就可以读取,不过要注意ini的格式.
[test]
a=11|22|33
b=22|33|44
 楼主| 发表于 2009-8-28 18:33:24 | 显示全部楼层
你不要把问题提得这么得绕人好不好,先研究下你INI文件的数值有没问题
UID 发表于 2009-8-28 15:19

数值什么问题?
格式都是一样
A001=123|456|789|112|……
A002=545|4654|4564|456456|……
……
N=dfg|sdfas|asdf|asdf|……
不管他后面是值是多少,都是以“|”为分界线,
它的格式是统一的
A=1|2|3|4
B=4|5|6|7
后面值不是按顺序的哈,别看错了,只是例如而已
 楼主| 发表于 2009-8-28 19:24:24 | 显示全部楼层
本帖最后由 jycel 于 2009-8-28 19:25 编辑


如图只能读取字段名下的关键字,关键字后面的值还无从着手,在FOR……next中应该还插入一个FOR循环,我的思路是读取这个值,然后StringSplit来分解开来,再写入列表中!具体读取一直没成功
        $n=0
        $var = IniReadSection($ini, "Maclist")
        For $i = 1 To $var[0][0]
                _GUICtrlListView_AddItem ($ListView1, $var[$i][0], $n)
        Next

ini
[Maclist]
00-E0-61-15-C5-43=A001|192.168.0.11|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启
00-E0-61-16-12-01=A002|192.168.0.12|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启
00-E0-61-15-C8-DC=A003|192.168.0.13|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启
00-E0-61-15-C7-4E=A004|192.168.0.14|按IP地址|255.255.255.0|192.168.0.1|202.98.96.68|61.139.2.69|1440*900*32*75|网维大师|开启

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-8-28 20:56:38 | 显示全部楼层
本帖最后由 afan 于 2009-8-28 21:07 编辑

如果 ini 文件跟其它的什么读写没有关系,可以直接写成以下格式,读取更方便:
[Maclist]
1=00-E0-61-15-C5-43|A001|192.168.0.11|按IP地址|...|....
2=00-E0-61-16-12-01|A002|192.168.0.12|按IP地址|...|....
3=...
直接IniReadSection读取值,for...next,GUICtrlCreateListViewItem创建项目,简单且不会出错

或者不用ini格式,直接一行一组数据(没等号),如
00-E0-61-15-C5-43|A001|192.168.0.11|按IP地址|...|....
00-E0-61-16-12-01|A002|192.168.0.12|按IP地址|...|....

_FileReadToArray读取到数组再创建,同样简单
 楼主| 发表于 2009-8-28 22:21:58 | 显示全部楼层
如果 ini 文件跟其它的什么读写没有关系,可以直接写成以下格式,读取更方便:
[Maclist]
1=00-E0-61-15-C5-43|A001|192.168.0.11|按IP地址|...|....
2=00-E0-61-16-12-01|A002|192.168.0.12|按IP地址|...|....
...
afan 发表于 2009-8-28 20:56

我是用来做网吧GHOST后全自动设置工具要,是根据MAC地址来更改
发表于 2009-8-28 22:32:45 | 显示全部楼层
Dim $var = IniReadSection($ini, "Maclist"), $item[1], $i
For $i = 1 to $var[0][0]
     $item[$i-1] = GUICtrlCreateListViewItem($var[$i][0] & '|' & $var[$i][1], $ListView)
     ReDim $item[$i+1]
next
 楼主| 发表于 2009-8-29 10:15:32 | 显示全部楼层
Dim $var = IniReadSection($ini, "Maclist"), $item[1], $i
For $i = 1 to $var[0][0]
     $item[$i-1] = GUICtrlCreateListViewItem($var[$i][0] & '|' & $var[$i][1], $ListView)
     ReDim $item[$i+1]
...
afan 发表于 2009-8-28 22:32

谢谢!试成功了!先去理解下
发表于 2014-7-11 19:58:56 | 显示全部楼层
afan的代码很好,我试了很成功的读取到值。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 00:38 , Processed in 0.082431 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表