检测文本是否有数据写入,并显示
本帖最后由 xymc 于 2015-4-13 05:51 编辑D盘共享目录里面有个开机记录.txt的文本,
格式如下
pc-00110:30开机
pc-00512:45开机
pc-00115:32开机
PC-00516:49开机
想做个程序实时检测这个文本是否有数据写入,并显示最后一行文字,如 PC-00516:49开机
定时检测也行,显示最后一行
显示最后一行内容这个还好,主要是怎么实时检测该文本是否有数据写入?请教下大家
#include "file.au3"
#include<IE.au3>
Const $FileName="c:\开机记录.txt"
Local $FileTime,$yyyymd
$FileTime = FileGetTime($FileName,0,1)
While (@HOUR>=1 And @HOUR <=23)
$yyyymd = FileGetTime($FileName,0,1)
If($FileTime <> $yyyymd) Then;检查文件是否被修改过(修改过时间会变化)
$FileTime = $yyyymd
$line = _FileCountLines("开机记录.txt")
$Word = FileReadLine("开机记录.txt", $line)
TrayTip("发现开机", $Word, 5, 3)
EndIf
Sleep(1000) ;1秒钟检查一次文件
WEnd
如何把这里设为一个变量
如
$line = _FileCountLines("$x1")
$Word = FileReadLine("$x1", $line)
TrayTip("发现开机", $Word, 5, 3)
但它不会生效,用前面的变量$FileName 这个也不行,请教下大家 要不是要再加一个变量?还是怎么读取前面那个$FileName变量?
像这样???为什么不自己先动手呢。。 检测有无新数据写入很简单。先把首次检测到的行数记录,然后把行数来作为对比就知道了。如果不相等,就读取最后一行数据。。简单的。自己先练习下,有什么不懂再发上来问吧。要学会用搜索。。 回复 3# 半芯竹
错了,楼主貌似更主要的是要实时监控文件是否改变
要求不严格的话,用filegettime应该就行了 本帖最后由 xymc 于 2015-4-11 04:04 编辑
回复 4# netegg
对的,就是这个意思,可以这个检测太频烦会很吃CPU,怎样优化这个检测机制? 用日志可能也行,不过监控这类事都是常驻内存的,就算用日志好像也不会即时报告 回复 6# netegg
那怎么搞啊? 获取文件更改时间用不了多少系统资源的 就差一个变量了,大家帮帮忙
页:
[1]