如何判断一个文件是否改变? (100分)

  • 主题发起人 主题发起人 大苹果
  • 开始时间 开始时间

大苹果

Unregistered / Unconfirmed
GUEST, unregistred user!
;我现在要完成如下这个任务!
; 从一个文件里读数据。这个文件的数据是即时更新的!这个文件的数据是从 com口读的!
可能读了文件后,文件的大小不会发生变化,但里面的数据会发生变化。请问如何处理才
不会丢数据!
; ;出了结果,再加100分!谢谢!
;
 
能行吗?不会起访问冲突么?
 
你是如何做的啊
 
谈谈俺的思路:
俺写的是一个期货软件,要从这个记录型文件里读数据往sql server里写这个记录型文件里至少
包括商品代码,最高价,最低价,开盘价,最新价。sql server里碍要有商品代码名的数据库
表三个,即时的分钟的和天的,没有和商品代码相关的表就要求创建。
; 我现在想知道如何能提高效率?
 
1.监测COM口
2.定时判断文件最后修改时间
function GetFileLastWriteTime(FileName: string):TDateTime;
var
; ffd: TWin32FindData;
; dft: DWord;
; lft: TFileTime;
; h: THandle;
begin
; //获取文件信息
; h := Windows.FindFirstFile(PChar(FileName),ffd);
; if h <> INVALID_HANDLE_VALUE then
; begin
; ; //we′relookingforjustonefile,socloseour″find″
; ; Windows.FindClose(h);
; ; //converttheFILETIMEtolocalFILETIME
; ; FileTimeToLocalFileTime(ffd.ftLastWriteTime,lft);
; ; //convertFILETIMEtoDOStime
; ; FileTimeToDosDateTime(lft, LongRec(dft).Hi, LongRec(dft).Lo);
; ; //finally,convertDOStimetoTDateTimeforuseinDelphi′snativedate/timefunctions
; ; Result := FileDateToDateTime(dft);
; end
; else
; ; Result := Now;
end;
3.可能是最好的解决方法,就是监测文件变化,一旦变化发出通知,在<Windows高级编程>里有这么
一节,相信Delphi,EditPlus等都采用的这种方法,我从api help里没找到这个,可能要自己仿照
C的格式声明一下.
 
监测文件变化可以用查看文件的属性修改时间,即可知道是否修改!
 
接受答案了.
 
后退
顶部