Delphi-Quellcode:
var StreamH, Stream1, Stream2: TMemoryStream;
i: Integer;
StreamH.LoadFromFile('Datei3');
Schleife
Stream1.LoadFromFile('Datei1');
Stream2.LoadFromFile('Datei2');
Hash1 := GetMD5(Stream1);
Hash2 := GetMD5(Stream2);
Stream1.SaveToFile('Backup');
Stream2.SaveToFile('Datei1');
//for i := 0 to StreamH.Size - SizeOf(Hash) do
// if CompareMem(@Hash1, PAnsiChar(StreamH.Memory) + i, SizeOf(Hash)) then
// MoveMemory(@Hash2, PAnsiChar(StreamH.Memory) + i, SizeOf(Hash));
i := 0;
while i <= StreamH.Size - SizeOf(Hash) do
if CompareMem(@Hash1, PAnsiChar(StreamH.Memory) + i, SizeOf(Hash)) then begin
MoveMemory(@Hash2, PAnsiChar(StreamH.Memory) + i, SizeOf(Hash));
Inc(i, SizeOf(Hash));
end else Inc(i);
Wiederhole
StreamH.SaveToStream('Datei3');
so wären die Lese-/Schreiboperationen auf den Datenträger minimiert
[add]
Bit für Bit hatte ich eher als Byte für Byte verstanden