[已解决]listview列表中多项目怎样从INI中读取数据?
本帖最后由 jycel 于 2009-8-29 10:16 编辑解决方法:8楼
如上图:怎样从配置文件中读取所有内容到列表中
我试了下只能读取等号前面的也就是字段名下的关键值,后面的值无法读取
配置文件如:
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
_GUICtrlListView_AddItem ($ListView1, $var[$i], $n)
$var0=IniRead($ini,"Maclist",$var[$i],"")
Next 你不要把问题提得这么得绕人好不好,先研究下你INI文件的数值有没问题 iniread.inireadsection就可以读取,不过要注意ini的格式.
a=11|22|33
b=22|33|44 你不要把问题提得这么得绕人好不好,先研究下你INI文件的数值有没问题
UID 发表于 2009-8-28 15:19 http://www.autoitx.com/images/common/back.gif
数值什么问题?
格式都是一样
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
后面值不是按顺序的哈,别看错了,只是例如而已 本帖最后由 jycel 于 2009-8-28 19:25 编辑
如图只能读取字段名下的关键字,关键字后面的值还无从着手,在FOR……next中应该还插入一个FOR循环,我的思路是读取这个值,然后StringSplit来分解开来,再写入列表中!具体读取一直没成功
$n=0
$var = IniReadSection($ini, "Maclist")
For $i = 1 To $var
_GUICtrlListView_AddItem ($ListView1, $var[$i], $n)
Next
ini
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|网维大师|开启 本帖最后由 afan 于 2009-8-28 21:07 编辑
如果 ini 文件跟其它的什么读写没有关系,可以直接写成以下格式,读取更方便:
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读取到数组再创建,同样简单 如果 ini 文件跟其它的什么读写没有关系,可以直接写成以下格式,读取更方便:
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 http://www.autoitx.com/images/common/back.gif
我是用来做网吧GHOST后全自动设置工具要,是根据MAC地址来更改
Dim $var = IniReadSection($ini, "Maclist"), $item, $i
For $i = 1 to $var
$item[$i-1] = GUICtrlCreateListViewItem($var[$i] & '|' & $var[$i], $ListView)
ReDim $item[$i+1]
next
Dim $var = IniReadSection($ini, "Maclist"), $item, $i
For $i = 1 to $var
$item[$i-1] = GUICtrlCreateListViewItem($var[$i] & '|' & $var[$i], $ListView)
ReDim $item[$i+1]
...
afan 发表于 2009-8-28 22:32 http://www.autoitx.com/images/common/back.gif
谢谢!试成功了!先去理解下 afan的代码很好,我试了很成功的读取到值。
页:
[1]