Registriert seit: 1. Feb 2003
1.340 Beiträge
FreePascal / Lazarus
|
Re: Eindeutiger Vergleich für große Dateien gesucht
3. Aug 2005, 19:23
ich würde dich auch noch bitten (wenn du die fehler korrigiert hast) auch noch meine methode zu testen, da ich damit mit größeren blöcken arbeite und mach meiner theorie bei großen dateien, dort mehr speed rauskommen KÖNNTE
Delphi-Quellcode:
function SameFile(File1,File2:String):boolean;
var
s1,s2:Tfilestream;
block:int64;
buffer1,buffer2: string;
begin
result := false;
try
s1 := Tfilestream.Create(File1,fmOpenRead);
s2 := Tfilestream.Create(File2,fmOpenRead);
if s1.Size <> s2.Size then begin
result := false;
end else begin
s1.Position := 0;
s2.Position := 0;
block := 10485760; //10MB hier eventuell mal verschiedene werte ausprobieren (1,10,20,30,100)
if s1.Position+block > s1.Size-1 then
block := s1.Size-s1.Position;
result := true;
setlength(buffer1,block);
setlength(buffer2,block);
while( s1.Position <> s1.Size ) do begin
if s1.Position+block > s1.Size-1 then
block := s1.Size-s1.Position;
s1.Read(buffer1[1],block);
s2.Read(buffer2[1],block);
if buffer1 <> buffer2 then begin
result := false;
break;
end;
end;
end;
finally
s1.Free;
s2.Free;
end;
end;
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
|
|
Zitat
|