免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Delphi中比較兩個文件是否相同

Delphi中比較兩個文件是否相同

時間:2011-6-2來源:yang 作者: peng點擊: 232次
function CompareStream(// 比較兩個流是否相等
  mStream1, mStream2: TStream // 兩個流
): Boolean;// 返回兩個流是否相等
var
  vBuffer1, vBuffer2: array[0..$1000-1] of Char;
  vLength1, vLength2: Integer;
begin
  Result := mStream1 = mStream2;
  if Result then Exit;
  if not Assigned(mStream1) or not Assigned(mStream2) then Exit;// 其中一個為空
  while True do
  begin
    vLength1 := mStream1.Read(vBuffer1, SizeOf(vBuffer1));
    vLength2 := mStream2.Read(vBuffer2, SizeOf(vBuffer2));
    if vLength1 <> vLength2 then Exit;
    if vLength1 =0 then Break;
    if not CompareMem(@vBuffer1[0],@vBuffer2[0], vLength1) then Exit;
  end;
  Result := True;
end;{ CompareStream }
 
function CompareFile(// 比較兩個文件是否相等
  mFileName1, mFileName2: string // 兩個文件
): Boolean;// 返回兩個文件是否相等
var
  vFileHandle1, vFileHandle2: THandle;
  vFileStream1, vFileStream2: TFileStream;
 
  vShortPath1, vShortPath2: array[0..MAX_PATH] of Char;
begin
  Result := False;
  if not FileExists(mFileName1) or not FileExists(mFileName2) then Exit;// 其中一個文件不存在
  GetShortPathName(PChar(mFileName1), vShortPath1, SizeOf(vShortPath1));
  GetShortPathName(PChar(mFileName2), vShortPath2, SizeOf(vShortPath2));
  Result := SameText(vShortPath1, vShortPath2);// 兩個文件名是否相同
  if Result then Exit;
  vFileHandle1 := _lopen(PChar(mFileName1), OF_READ or OF_SHARE_DENY_NONE);
  vFileHandle2 := _lopen(PChar(mFileName2), OF_READ or OF_SHARE_DENY_NONE);
  Result :=(Integer(vFileHandle1)>0) and (Integer(vFileHandle2)>0);// 文件是否可以訪問
  if not Result then
  begin
    _lclose(vFileHandle1);
    _lclose(vFileHandle2);
    Exit;
  end;
  Result := GetFileSize(vFileHandle1, nil)= GetFileSize(vFileHandle2, nil);// 文件大小是否一致
  if not Result then
  begin
    _lclose(vFileHandle1);
    _lclose(vFileHandle2);
    Exit;
  end;
  vFileStream1 := TFileStream.Create(vFileHandle1);
  vFileStream2 := TFileStream.Create(vFileHandle2);
  try
    Result := CompareStream(vFileStream1, vFileStream2);// 比較兩個文件內(nèi)容是否相同
  finally
    vFileStream1.Free;
    vFileStream2.Free;
  end;
end;{ CompareFile }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption := BoolToStr(
    CompareFile(‘c:\temp\temp1.txt‘,‘c:\temp\temp2.txt‘), True);
end;
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Qt的文本文件讀寫
Delphi 類型輪換函數(shù)
想通過delphi將word和pdf文件保存到數(shù)據(jù)庫中,需要時下載到硬盤上操
Delphi中ini文件讀取的Value超長問題
delphi未來之路
Delphi中釋放介紹
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服