TFileStream wäre der geeigntee Datentyp, mit dem man unter heutigen 32-Bit Umgebungen effizient Dateien kopiert. Die BlockWrite/BlockRead-Funktionen sind noch ein Relikt aus TurboPascal/BorlandPascal-Zeiten und quasi obsolete (sie werden also nur noch aus Kompatibilitätsgründen unterstützt).
So könnte ein entsprechender Quellcode inkl. Fehlermanagement aussehen:
Delphi-Quellcode:
VAR SourceFile : TFileStream;
TargetFile : TFileStream;
BEGIN
SourceFile:=TFileStream.Create('QUELLDATEI.TXT', fmOpenRead);
TRY
TRY
TargetFile:=TFileStream.Create('ZIELDATEI.TXT', fmCreate OR fmShareDenyRead);
TRY
TargetFile.CopyFrom(SourceFile, SourceFile.Size);
FINALLY
FreeAndNil(TargetFile);
END;
FINALLY
FreeAndNil(SourceFile);
END;
EXCEPT
ShowMessage('Fehler aufgetreten.');
END;
END;