Lass die Schleife mal bis Count-1 laufen. Count Zeilen gibt es nicht. Es wird bei null angefangen zu zählen. Und dann fehlt der Ressourcenschutzblock und nimm nicht die Methode
Destroy zum Freigeben des Streams, sondern
Free bzw.
FreeAndNil.
Free prüft vorher, ob das Objekt auch existiert.
Destroy tut das nicht und wenn es nicht erzeugt werden konnte, fliegt dir bei
Destroy alles um die Ohren:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Stream : TFileStream;
Text : string;
TextLen, i : Integer;
begin
Text := 'Hello World';
Stream := TFileStream.Create('d:\test.txt', fmCreate);
try
for i := 0 to 10 do
begin
TextLen := i;
Stream.WriteBuffer(TextLen, SizeOf(Integer));
Stream.WriteBuffer(Pointer(Text)^, length(Text));
end;
finally
FreeAndNil(stream);
end;
end;