Einzelnen Beitrag anzeigen

supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#68

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 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!
  Mit Zitat antworten Zitat