Ich habe so eine Funktion schonmal gesehen
Bevor ich als indirekter Autor dieser Codebremse bezichtigt werde, möchte ich mal diese Funktion in den Raum werfen:
Delphi-Quellcode:
procedure ReplaceFile(FileName: String; old, new: Array of MD5Digest)
var
fs: TFileStream;
mem: TmemoryStream;
i: Integer;
begin
mem := TMemoryStream.Create();
fs := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
try
mem.CopyFrom(fs, 0);
for i = low(old) to high(old) do
begin
Replace(mem, old[i], new[i]);
end;
fs.CopyFrom(mem, 0);
finally
fs.Free;
mem.Free;
end;
end;
Bin nicht sicher ob die compiliert, aber
1. Wir statt der Datei ein Memorystream genommen, was den Vorgang beschleunigen dürfte
2. Wird die Datei nur einmal geöffnet, gelesen und nach den ganzen Ersetzungen gespeichert.
Aber vor einem Jahr hieß es doch noch "Brauche ich nicht: Performance egal, Hauptsache es läuft
"