比較兩個文本文件(或HTM,XML)的內容是不是一樣的,能不能做到(20分)

  • 主题发起人 主题发起人 edymill
  • 开始时间 开始时间
E

edymill

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大俠:<br>&nbsp; &nbsp;現有兩個文件,我都放到TfileStream中,想比較它們的內容(不是名字)是不是相同的<br>,說清楚點:<br>&nbsp; 我有一個Tform上有一個StringGrid,想知道打開時的StringGrid的內容與我關閉Tform時<br>用戶是不是修改了StringGrid的內容。所以我想通過把它打開時Save成一個文本文件,Close<br>&nbsp;Tform時Save 成另一個文本文件,比較這兩個文件?<br>&nbsp; &nbsp;不知道大俠們有什麼高見?說來聽聽......<br>&nbsp; &nbsp; 有分的啦!!!
 
&nbsp; 用Tfilestream一个字节一个字节的比较阿<br>
 
[:(]如果是一個字節一個字節比較還不如一行文本比較。我是想問有沒有一個API函數比較這兩<br>個文件?<br>高手們啊!你們在哪?Help me!!
 
沒有人能幫我嗎?<br>&nbsp; 親愛的大俠們!!!
 
Help me !!!
 
》[:(]如果是一個字節一個字節比較還不如一行文本比較。我是想問有沒有一個API函數比較這兩個文件?<br>整个文件的比较?有啊,可是只能比较大小啊什么的,呵呵。<br>如果你真要实现,你可以写个算法,在这里你去比较,可以整行的或固定长度整块的比较<br>哎呀,能实现就行了嘛,何必非要偷懒或者追求什么最佳方案,知道不,工程里没有最佳,<br>只有最快,效益最好:)
 
function fileSame(fName1,fName2: string): boolean;<br>var fFile1,fFile2 : file of Byte;<br>&nbsp; &nbsp;temStr1,temStr2 : byte;<br>&nbsp; &nbsp;fSize1,fSize2 : longint;<br>&nbsp; &nbsp;bsame : boolean;<br>begin<br>&nbsp; result := False;<br>&nbsp; bSame := True;<br>&nbsp; if (not(fileExists(fName1))) or( not (fileExists(FName2))) then exit;<br>&nbsp; AssignFile(fFile1,Fname1);<br>&nbsp; AssignFile(fFile2,Fname2);<br>&nbsp; reset(fFile1);<br>&nbsp; reset(fFile2);<br>&nbsp; fSize1 := FileSize(fFile1);<br>&nbsp; FSize2 := FileSize(fFile2);<br>&nbsp; if fSize1&lt;&gt;fSize2 then begin//看長度是否一樣<br>&nbsp; &nbsp; &nbsp;closeFile(fFile1);<br>&nbsp; &nbsp; &nbsp;closeFile(fFile2);<br>&nbsp; &nbsp; &nbsp;exit;<br>&nbsp; end;<br>&nbsp; while Not Eof(fFile1) do begin<br>&nbsp; &nbsp; read(fFile1,temStr1);<br>&nbsp; &nbsp; read(fFile2,temStr2);<br>&nbsp; &nbsp; if temStr1&lt;&gt;temStr2 then begin<br>&nbsp; &nbsp; &nbsp; bSame := False;<br>&nbsp; &nbsp; &nbsp; break;<br>&nbsp; &nbsp; end;<br>&nbsp; end;<br>&nbsp; closeFile(fFile1);<br>&nbsp; closeFile(fFile2);<br>&nbsp; result := bSame;<br>end;<br>是一個字節一個字節比較,
 
后退
顶部