调用ini配置的问题?
$i = '卡号:003658,'$i = StringRegExp($i, '卡号:(\d+),', 3)
MsgBox(0, 0, $a)
上面这个不能做到我的要求,我水平也菜。
要求读取配置文件的卡号然后去读取log.txt中有003658或者003654,匹配就执行程序。
ini文件如下
[配置]
卡号=003659;003657;003654;003653;003650
所以请教大家应该怎么写呢? $ini=@ScriptDir&"\ini.ini" ;定义ini文件路径
$var=IniRead($ini,"配置","卡号","") ;读取卡号的值
$array=StringSplit($var,";") ;通过分号分割$var
$log=@ScriptDir&"\log.txt" ;定义log.txt路径
$open=FileOpen($log) ;打开log.txt
$data=FileRead($open) ;读取log.txt文件内容,实际上不用fileopen获取句柄,直接读取也可,俺习惯使然
FileClose($open) ;关闭log.txt文件
For $i=1 To $array ;循环判断log.txt中是否包含ini文件定义的卡号
$chk=StringInStr($data,$array[$i]) ;在$date中查找是否存在卡号字符串
If $chk<>0 Then ExitLoop ;如有,则跳出for...next循环,执行下面的程序
If $i=$array Then Exit ;最后一次循环还是无发现,则退出程序
Next
1、StringInStr ( "字符串", "子字符串" [, 区分大小写 [, 出现次序 [, 开始 [, 数量]]]] )
2、OR结构 谢谢了,回头试试。楼上这位看得不太懂,不过也多谢你。 本帖最后由 love5173 于 2011-5-19 22:03 编辑
回复 4# lotsunhim
我也比较菜,我只是认为根本不需要用正则,只是匹配有没有指定字符串,根本没有模糊匹配的意思,所以用StringInStr($txt,"003654") or StringInStr($txt,"003658")
就可以了
或者用正则的StringRegExp($txt,'003654|003658',1)就可以了,因为我比较懒,所以不想给你写完整代码 回复 6# love5173
确实不用正则也是可以的,简单易懂就行了。。。
页:
[1]