Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fehler beim String-streamen (stream-write-error)

  Alt 1. Dez 2004, 23:44
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat