Ich nehme an es handelt sich um "Übung" im Zusammenhang mit Streams, daher nur die korrigierte Version und keine Hinweise auf andere Optionen.
Delphi-Quellcode:
procedure makestream(datei: string);
var
fl: file of AnsiChar;
P: AnsiChar;
len, fs: longint;
stream: TMemoryStream;
begin
stream := TMemoryStream.Create;
try
assignfile(fl, datei);
reset(fl);
fs := filesize(fl);
len := fs;
stream.Write(len, SizeOf(len));
while not eof(fl) do
begin
read(fl, P);
stream.Write(P, SizeOf(P));
end;
stream.Position := 0; // Streamposition wieder auf Anfang setzen
stream.Read(len, SizeOf(len)); // Länge lesen, danach erst beginnt der Text
Form1.Memo1.Lines.LoadFromStream(stream);
closefile(fl);
finally
stream.Free;
end;
end