找回密码
 加入
搜索
查看: 12616|回复: 30

[AU3基础] [已解决]读取文本文件使用通配符问题

 火.. [复制链接]
发表于 2010-5-6 11:37:16 | 显示全部楼层 |阅读模式
本帖最后由 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

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-5-6 12:43:22 | 显示全部楼层
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
 楼主| 发表于 2010-5-6 16:55:20 | 显示全部楼层
afan 发表于 2010-5-6 12:43


谢谢版主!通配符的问题解决了;还有一个问题,假设我已经运行了BCI系统程序(公司请人开发的一个玩意儿),也运行了查找“lile”字符串的脚本文件,LOG文件中也出现“'lile'”字符串,
但是脚本文件并不能直接提示“已经发现错误”,而要等把BCI系统手动关掉后才出现“已经发现错误”的提示框;不知道有没有办法只要LOG文件中出现“lile”字符串,就给出提示信息。麻烦
再帮我看看吧。谢谢!
发表于 2010-5-6 18:41:50 | 显示全部楼层
在上面的代码第3行后面插入一行 Msgbox(0, 0, $file) 看看是不是那个log文件
 楼主| 发表于 2010-5-6 19:03:23 | 显示全部楼层
在上面的代码第3行后面插入一行 Msgbox(0, 0, $file) 看看是不是那个log文件
afan 发表于 2010-5-6 18:41

afan,我加Msgbox(0, 0, $file) 看了,确定是那个LOG文件。
发表于 2010-5-6 19:57:28 | 显示全部楼层
不运行那个BCI系统程序(保证那个log文件存在),直接运行此脚本,应该会有提示吧。
 楼主| 发表于 2010-5-7 09:18:23 | 显示全部楼层
本帖最后由 waxy 于 2010-5-7 09:23 编辑
不运行那个BCI系统程序(保证那个log文件存在),直接运行此脚本,应该会有提示吧。
afan 发表于 2010-5-6 19:57

是的,我昨天也发现只要BIC不运行,都很正常;BIC在运行时脚本根本就没有打开LOG文件(插入Msgbox(0, 0, $file),也是待BIC进程结束以后才显示对应的LOG文件名),不知
道为什么,很怪。
发表于 2010-5-7 09:26:00 | 显示全部楼层
未必是BCI软件在退出时才生成LOG文件?
 楼主| 发表于 2010-5-7 09:50:26 | 显示全部楼层
未必是BCI软件在退出时才生成LOG文件?
3mile 发表于 2010-5-7 09:26

确定!BCI一运行即产生LOG文件。
发表于 2010-5-7 11:08:02 | 显示全部楼层
回复 7# waxy


BIC在运行时是否可以手动打开log文件?且是否有内容?
BIC在退出时是否产生新的log日志,原来的信息是否已删除?
 楼主| 发表于 2010-5-7 11:30:21 | 显示全部楼层
回复 10# afan
可以手动打开,里面也有内容,BIC退出不会产生新的LOG日志。
发表于 2010-5-7 11:40:27 | 显示全部楼层
回复 11# waxy


    log文件名在同机不会改变文件名吧?直接将2#前4行代码替换成 $file = 'log文件完整路径名' 测试
发表于 2010-5-7 11:56:44 | 显示全部楼层
1、BCI是这个AU3运行的还是手动运行的,如果是AU3运行的,是否用runwait()?
2、如果是手动运行BCI,BCI运行的时候,是否可以用AU3 的filecopy log文件到另外的文件?
 楼主| 发表于 2010-5-7 12:09:00 | 显示全部楼层
1、BCI是这个AU3运行的还是手动运行的,如果是AU3运行的,是否用runwait()?
2、如果是手动运行BCI,BCI ...
C.L 发表于 2010-5-7 11:56

我也想到了用这个方法,但循环方面还有点问题,我正在看。
发表于 2010-5-7 12:27:24 | 显示全部楼层
本帖最后由 newuser 于 2010-5-7 12:30 编辑

回复 2# afan
可以查找其他类型的文件吗?如 .doc文档,对中文支持可以吗?我尝试了该代码,均无法找到文件啊!比如我机器 有SEP_INST.LOG,我使用Local $search = FileFindFirstFile('*EP*.log'),其他照搬,可是找不到该文件啊?
我的错:要查询文件必须在当前目录下才能找到!
如何才能全盘随意搜索呢?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-29 16:25 , Processed in 0.085390 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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