ini配置文件的读取
有一个配置文件,内容如下:abc.ini
a.ipshougou.com=机器狗病毒存放主机2008/12/1
b.ipshougou.com=机器狗病毒存放主机2008/12/1
www.biaoqing365.cn=机器狗病毒存放主机2008/12/1
qq.icafe88.cn=机器狗病毒存放主机2008/12/1
www.qq808a.cn=钓鱼网2008/12/1
.............
怎么读取配置文件中的网站地址?
我的想法是要从这个配置文件中读出其中的网站地址(这些网站地址都是需要屏蔽的非法网站或木马病毒网站),网站地址可能有近千条之多。
[ 本帖最后由 sfwd001 于 2009-3-9 18:36 编辑 ] 1.
$var = IniRead(@ScriptDir&"\abc.ini", "abcd", "www.xxx.com", "非法网站")
MsgBox(4096, "结果", $var)
2.
$var = IniReadSection(@ScriptDir&"\abc.ini", "abcd")
MsgBox(4096, "结果", $var) 感谢 xrbenbeba 网友的回复,但您的这种方法不是我想要的,我的想法是要从一个配置文件中读出其中的网站地址(这些网站地址都是需要屏蔽的非法网站或木马病毒网站),网站地址可能有近千条之多。 xrbenbeba 朋友给你第二个方案是合你的要求的,你不能指望别人完全按你的意思帮你把代码写完整吧,点到关键了就自己稍稍再动动脑筋查查帮助喽。
Local $var,$tmp_str
$var = IniReadSection(@ScriptDir&"\abc.ini", "abcd")
If @error <> 1 Then
For $i=1 to $var
$tmp_str&=@CRLF&$var
Next
MsgBox(4096, "结果", $tmp_str)
Else
MsgBox(4096, "结果", "没有找到")
EndIf 其实这些一切都可以在au3的帮助文档找到.. 所以说初学者要注意学习方法,当然更要注意提问方法,理当先看帮助后查论坛,实在不行整理好思路,再提问,不然自己头痛得很,还伤了帮助他解决问题的朋友们的心,人家伤心了不搭理了,还当是世态炎凉。 感谢KiwiCsj的大力支持,我修改了一下,可以运行,但有一个问题还是不能解决,还请大家再次帮助!就是这个程序只能读取1105行数据!我的数据远远超过这个行数!怎么办?
Local $var,$tmp_str,$file,$dt
$dt="ProcessSafe.ini"
$file="hosts"
$var = IniReadSection($dt, "Local_HostsDeny")
If @error <> 1 Then
For $i=1 to $var
$tmp_str&=@CRLF&"127.0.0.1 "&$var[$i]
Next
FileWrite($file,$tmp_str)
Else
MsgBox(4096, "结果", "没有找到")
EndIf
;FileWrite($file,@CRLF)
;FileClose($file)
MsgBox(0, "提示", "文件提取成功!")
[ 本帖最后由 sfwd001 于 2009-2-24 23:26 编辑 ] 我的办法是把现有程序分别复制. 也就是现在的1105行,另一个放另外的1105行..:face (25):
比较笨.. 有没有更好的方法? 这么大的论坛就没有人可以回复这个了? #include<file.au3>
dim $j=1, $aWeb, $address, $aBlock
$file= fileopen(@systemdir @ "\drivers\etc\hosts", 2)
_filereadtoarray($ini, $aWeb)
for $i = 1 to $aWeb
if stringinstr($aWeb[$i], "=") <> 0 then
$address = stringsplit($aWeb[$i], "=")
$aBlock[$j] = "127.0.0.1 " & $address
$j=$j+1
endif
next
_filewritefromarray($file, $aBlock, 1)
[ 本帖最后由 netegg 于 2009-3-1 10:33 编辑 ] 原帖由 netegg 于 2009-2-28 18:05 发表 http://www.autoitx.com/images/common/back.gif
#include
dim $j=1, $aWeb, $address, $aBlock
$file= fileopen(@systemdir @ "\drivers\etc\hosts", 2)
_filereadtoarray($ini, $aWeb)
for $i = 1 to $aWeb
if stringinstr($aWeb[$i], "=")0 then
...
感谢netegg的回复,可是我还是搞不懂您写的这一段程序,运行也是出错,请您看看 我以前做的一个ini文件里面有3000多行,
分类
[一级分类]
001=001
.
.
.
.
999=999
111
222
[......]
111
999
能看明白吗 简单说说看你自己的思路,不用列举那么多行,每个section举一两个就行 还有,把错误提示发上来我看看