Was mir als erstes auffällt: verknüpf mal die Föags mit
or.
Und dann: sizeof(Buffer) dürfte dir immer vier Bytes liefern, da ein String auch nur ein Zeiger ist. So sollte es gehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
Buffer: String;
len: Cardinal;
begin
fs := TfileStream.Create('d:\Dokumente\Filme.txt', fmOpenRead);
try
len := fs.Size;
SetLength(Buffer, len);
try
fs.ReadBuffer(Buffer[1], len);
Memo1.Text := Buffer;
except
on E: EReadError do ShowMessage(E.Message);
end;
finally
FreeAndNil(fs);
end;
end;