Wenn deine Prozedur die Datei byteweise einliest und verarbeitet, mach do sowas:
Delphi-Quellcode:
var
fs: TFileStream;
buffer: array[0..32767] of Byte;
byteCount, i: Integer;
begin
fs := ... ;
repeat
byteCount := fs.Read(buffer, sizeof(buffer));
for i := 0 to byteCount do
verarbeite buffer[i];
until byteCount = 0;
end;
Damit dürfte immer alles recht fix gehen, bei minimaler Speicherbelastung.