nop: Hvordan så med sammenligning af størrelse (antal bytes), dato, osv? Der må være procedurer/funktioner, der klarer det arbejde. Hvor finder jeg kode til det? På forhånd tak! Jan
Synes godt om
Slettet bruger
20. juli 2003 - 16:25#4
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 if fs1.Size = fs2.Size then begin while fs1.Position < fs1.Size do begin L1 := fs1.Read(B1[1], BlockSize); L2 := fs2.Read(B2[1], BlockSize); if L1 <> L2 then begin Exit; end; if not CompareMem(@B1[1], @B2[1], L1) then Exit; end; Result := True; end; finally fs2.Free; end; finally fs1.Free; end; end;
Jaweni -> Jeg vil anbefale dig først at sammenligne dato, tid, etc. Hvis de da ligner hinanden, så brug hejhejs funktion. På den måde kan du spare både tid og resourcer, hvis du skal løbe mange filer igennem :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.