G geshicheng Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-09 #1 一文本文件,有外部程序修改它,每10秒一修改,我在修改他时想<br>判断它是否被修改,<br>我应用ttimer每一秒判断一次
J journer Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-09 #2 这个文件是什么文件类型,文件修改是系统控制的,而且每次只能由一个程序操作<br>应该是简单的,判断是否被修改可以看文件的属性
L ldaan3 Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-09 #3 在修改之前,读入内存。
R realLearning Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-09 #4 用 CreateFile 以 GENERIC_WRITE 方式<br>打开,判断返回句柄是否=INVALID_HANDLE_VALUE<br>不知道行不行<br><br>另外 Delphi win32sdk 中有个函数<br>bool IsFileWritable(LPSTR szFile);<br>但Delphi 的头文件中未声明,不知道再那个<br>dll中
用 CreateFile 以 GENERIC_WRITE 方式<br>打开,判断返回句柄是否=INVALID_HANDLE_VALUE<br>不知道行不行<br><br>另外 Delphi win32sdk 中有个函数<br>bool IsFileWritable(LPSTR szFile);<br>但Delphi 的头文件中未声明,不知道再那个<br>dll中
G geshicheng Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-09 #5 实际上此文本文件是采集设备实时数据,每10秒被写入一次数据<br>我用tchart输出,需要考虑数据正本修改时出错,所以想知道避免出错的方法
G gongjin21 Unregistered / Unconfirmed GUEST, unregistred user! 2003-07-14 #7 可以按照这个原理:<br> TTimer每秒取一次[目标文件的修改时间],然后跟上一次保存下来的[目标文件的修改时间]比较,如果相同证明外部程序还没修改到,反之就是修改了,就取目标文件数据(若你也要修改目标文件,先复制副本或调入内存中处理),同时记住这一次的 [目标文件的修改时间]以备下一次的比较。<br><br>获取文件修改时间可用下面函数参照<br>http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1750766
可以按照这个原理:<br> TTimer每秒取一次[目标文件的修改时间],然后跟上一次保存下来的[目标文件的修改时间]比较,如果相同证明外部程序还没修改到,反之就是修改了,就取目标文件数据(若你也要修改目标文件,先复制副本或调入内存中处理),同时记住这一次的 [目标文件的修改时间]以备下一次的比较。<br><br>获取文件修改时间可用下面函数参照<br>http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1750766