[已解决]读取文本文件使用通配符问题
本帖最后由 waxy 于 2010-5-10 21:44 编辑各位,我写了一段代码,遇到点问题,代码的功能是要实现循环查找一个文本文件的一个指定字符串,当找到指定字符串后结束循环。
但遇到以下两种情况功能就没法实现了。
一、被读取的这个文本文件的文件名不确定,只知道前面7位,于是我就想在脚本中使用如abcd123*.LOG,经验证多次不成功。
二、且这个文本文件内容不是固定的,是其它程序产生的一LOG文件随时都在变化,我目的就是想通过脚本随时侦测这个LOG文件,
当它出现指定的字符串即终止脚本运行。
代码如下,兄弟们有空帮我看一下,先谢过了。Local $a = FileOpen('abc123*.log, 0)
While 1
$hs = FileReadLine($a)
If StringRegExp($hs, 'lile') Then
MsgBox(64, "错误...", '出错了!')
ExitLoop
EndIf
WEnd
Local $search = FileFindFirstFile('abc123*.log')
If $search = -1 Then Exit MsgBox(48, 0, '未搜索到')
Local $file = FileFindNextFile($search)
FileClose($search)
While 1
Local $a = FileRead($file)
If StringRegExp($a, 'lile') Then ExitLoop MsgBox(64, "错误...", '出错了!')
Sleep(10)
WEnd
afan 发表于 2010-5-6 12:43 http://www.autoitx.com/images/common/back.gif
谢谢版主!通配符的问题解决了;还有一个问题,假设我已经运行了BCI系统程序(公司请人开发的一个玩意儿),也运行了查找“lile”字符串的脚本文件,LOG文件中也出现“'lile'”字符串,
但是脚本文件并不能直接提示“已经发现错误”,而要等把BCI系统手动关掉后才出现“已经发现错误”的提示框;不知道有没有办法只要LOG文件中出现“lile”字符串,就给出提示信息。麻烦
再帮我看看吧。谢谢! 在上面的代码第3行后面插入一行 Msgbox(0, 0, $file) 看看是不是那个log文件 在上面的代码第3行后面插入一行 Msgbox(0, 0, $file) 看看是不是那个log文件
afan 发表于 2010-5-6 18:41 http://www.autoitx.com/images/common/back.gif
afan,我加Msgbox(0, 0, $file) 看了,确定是那个LOG文件。 不运行那个BCI系统程序(保证那个log文件存在),直接运行此脚本,应该会有提示吧。 本帖最后由 waxy 于 2010-5-7 09:23 编辑
不运行那个BCI系统程序(保证那个log文件存在),直接运行此脚本,应该会有提示吧。
afan 发表于 2010-5-6 19:57 http://www.autoitx.com/images/common/back.gif
是的,我昨天也发现只要BIC不运行,都很正常;BIC在运行时脚本根本就没有打开LOG文件(插入Msgbox(0, 0, $file),也是待BIC进程结束以后才显示对应的LOG文件名),不知
道为什么,很怪。 未必是BCI软件在退出时才生成LOG文件? 未必是BCI软件在退出时才生成LOG文件?
3mile 发表于 2010-5-7 09:26 http://www.autoitx.com/images/common/back.gif
确定!BCI一运行即产生LOG文件。 回复 7# waxy
BIC在运行时是否可以手动打开log文件?且是否有内容?
BIC在退出时是否产生新的log日志,原来的信息是否已删除? 回复 10# afan
可以手动打开,里面也有内容,BIC退出不会产生新的LOG日志。 回复 11# waxy
log文件名在同机不会改变文件名吧?直接将2#前4行代码替换成 $file = 'log文件完整路径名' 测试 1、BCI是这个AU3运行的还是手动运行的,如果是AU3运行的,是否用runwait()?
2、如果是手动运行BCI,BCI运行的时候,是否可以用AU3 的filecopy log文件到另外的文件? 1、BCI是这个AU3运行的还是手动运行的,如果是AU3运行的,是否用runwait()?
2、如果是手动运行BCI,BCI ...
C.L 发表于 2010-5-7 11:56 http://www.autoitx.com/images/common/back.gif
我也想到了用这个方法,但循环方面还有点问题,我正在看。 本帖最后由 newuser 于 2010-5-7 12:30 编辑
回复 2# afan
可以查找其他类型的文件吗?如 .doc文档,对中文支持可以吗?我尝试了该代码,均无法找到文件啊!比如我机器 有SEP_INST.LOG,我使用Local $search = FileFindFirstFile('*EP*.log'),其他照搬,可是找不到该文件啊?
我的错:要查询文件必须在当前目录下才能找到!
如何才能全盘随意搜索呢?