Autor Beitrag
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 29.10.03 13:25 
Um zu überprüfen ob zwei Dateien identisch sind kann die folgenden Funktion benutzt werden (Autor: toms). Die Funktion benutzt das TFileStream Objekt um die Dateien zu lesen. Mit Hilfe der Funktion CompareMem wird der Inhalt verglichen. Die Funktion gibt True zurück wenn der Inhalt der beiden Dateien gleich ist.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
function FilesAreEqual(const File1, File2: TFileName): Boolean;   
const   
  BlockSize = 65536;   
var   
  fs1, fs2: TFileStream;   
  L1, L2: Integer;   
  B1, B2: array[1..BlockSize] of Byte;   
begin   
  Result := False;      
  fs1 := TFileStream.Create(File1, fmOpenRead or fmShareDenyWrite);   
  try        
    fs2 := TFileStream.Create(File2, fmOpenRead or fmShareDenyWrite);   
    try        
      Result := fs1.Size = fs2.Size; 
      while Result and (fs1.Position < fs1.Size) do   
      begin   
        L1 := fs1.Read(B1[1], BlockSize);   
        L2 := fs2.Read(B2[1], BlockSize);   

        Result := L1 = L2; 
        if Result then 
          Result := CompareMem(@B1[1], @B2[1], L1);   
      end;   
    finally   
      fs2.Free;   
    end;   
  finally   
    fs1.Free;   
  end;   
end;


Zuletzt bearbeitet von Tino am Mi 12.11.03 10:37, insgesamt 1-mal bearbeitet