找回密码
 加入
搜索
查看: 3450|回复: 8

[系统综合] 检测文本是否有数据写入,并显示

  [复制链接]
发表于 2015-4-9 02:30:26 | 显示全部楼层 |阅读模式
本帖最后由 xymc 于 2015-4-13 05:51 编辑

D盘共享目录里面有个开机记录.txt的文本,
格式如下
pc-001  10:30开机
pc-005  12:45开机
pc-001  15:32开机
PC-005  16:49开机

想做个程序实时检测这个文本是否有数据写入,并显示最后一行文字,如 PC-005  16: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变量?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-4-9 09:31:29 | 显示全部楼层


像这样???为什么不自己先动手呢。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-4-9 09:34:23 | 显示全部楼层
检测有无新数据写入很简单。先把首次检测到的行数记录,然后把行数来作为对比就知道了。如果不相等,就读取最后一行数据。。简单的。自己先练习下,有什么不懂再发上来问吧。要学会用搜索。。
发表于 2015-4-9 22:58:35 | 显示全部楼层
回复 3# 半芯竹
错了,楼主貌似更主要的是要实时监控文件是否改变

要求不严格的话,用filegettime应该就行了
 楼主| 发表于 2015-4-11 03:59:40 | 显示全部楼层
本帖最后由 xymc 于 2015-4-11 04:04 编辑

回复 4# netegg
对的,就是这个意思,可以这个检测太频烦会很吃CPU,怎样优化这个检测机制?
发表于 2015-4-11 12:18:51 | 显示全部楼层
用日志可能也行,不过监控这类事都是常驻内存的,就算用日志好像也不会即时报告
 楼主| 发表于 2015-4-12 04:05:37 | 显示全部楼层
回复 6# netegg


    那怎么搞啊?
发表于 2015-4-12 10:54:54 | 显示全部楼层
获取文件更改时间用不了多少系统资源的
 楼主| 发表于 2015-4-14 03:14:07 | 显示全部楼层
就差一个变量了,大家帮帮忙
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-1 08:11 , Processed in 0.081533 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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