Ich habe eine Konstante mit 1MB definiert, die ich zum Auslesen von Daten nutze. Das klappt problemlos unter Linux und Windows, aber Darwin in einer virtuellen Umgebung führt die Funktion gar nicht aus; ein debugln() als erste Anweisung kommt nicht hoch, dafür aber TApplication.HandleException Unknown Run-Time error : 202. Wenn ich die 1MB auf 2048 bytes reduziere klappt alles. Wie kann ich die maximale Größe bestimmen?
Code: Alles auswählen
const
{$ifndef Darwin}
cBufSize=1024*1024; //1MB
{$else}
cBufSize=2048;
{$endif}
var
f: file;
begin
AssignFile(f, UTF8ToSys(FFileName));
SetTextBuf(f, aBuffer, cBufSize);
Reset(f);
PS: Ich benutze keine TStringList, weil die eingelesenen Daten geparst und lokal vorgehalten werden müssen, wodurch doppelter Speicherbedarf entstünde.