![]() |
File compare
Hi Leutz
Ich weiß es gibt schon einige Threads darüber aber ich habe noch keine brauchbare Lösung gefunden. Ich will praktisch 2 Files miteinander vergleichen und sobald sich die eine von der anderen in irgendeiner Art und Weise unterscheidet (Inhaltlich) reagieren? Wie könnte das realisiert werden? LG |
AW: File compare
Eine Möglichkeit: beide Dateien in jeweils einen Stream einlesen und beide Streams mit CompareMem vergleichen.
|
AW: File compare
dh mit:
Delphi-Quellcode:
auslesen und dann zB mit folgender funktion vergleichen:
Stream := TFileStream.Create('c:\Temp\StreamTest.Datei', fmOpenRead);
Delphi-Quellcode:
?
function CompareMem(P1, P2: PChar; Length: Integer): Boolean;
begin Result := False; while Length > 0 do if P1^ = P2^ then begin Dec(Length); Inc(P1); Inc(P2); end else Exit; Result := True; end; LG |
AW: File compare
Erstelle von beiden Dateien eine Hash und vergleiche diesen.
|
AW: File compare
Thread:
![]() Ergebnis: ![]() Funzt ganz gut. :-D |
AW: File compare
@ Lucki
mit der MD5.pas zB aus ![]() ich nehme mal an ich muss MDFile aufrufen und anschließend MD5Match? Leider noch nicht mit sowas zu tun gehabt ! LG |
AW: File compare
Ungetestet:
Delphi-Quellcode:
function FilesAreEqal(const First, Second: TFilename): Boolean;
var FirstStream, SecondStream: TMemoryStream; begin Result := FileExists(First) and FileExists(Second); if Result then begin FirstStream := TMemoryStream.Create; try SecondStream := TMemoryStream.Create; try FirstStream.LoadFromFile(First); SecondStream.LoadFromFile(Second); Result := FirstStream.Size = SecondStream.Size; if Result then begin FirstStream.Position := 0; SecondStream.Position := 0; Result := CompareMem(FirstStream.Memory, SecondStream.Memory); end; finally SecondStream.Free; end; finally FirstStream.Free; end; end; end; |
AW: File compare
Für die ganz schnellen, erst die Größe der beiden Dateien vergleichen!
Gruß K-H |
AW: File compare
@DeddyH:
Dann lade mal bitte zwei 20GB große Dateien in den Arbeitsspeicher :P PS: Hashen lohnt sich eig. erst, wenn man mehrere Dateien mit einer vergleichen will. |
AW: File compare
ich mache es jetzt mit der FileCompare unit!
Funktioniert perfekt! danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz