Einzelnen Beitrag anzeigen

DevilsCamp
(Gast)

n/a Beiträge
 
#6

Re: In einen TFileStream speichern und laden

  Alt 6. Apr 2006, 10:54
Zitat von Neutron:
Guten Tag
Ich hab ein Programm geschrieben welches zu Anfang Daten aus einem TFileStream in eine Listbox lädt:

Delphi-Quellcode:
procedure TDatein.LoadFromStream;
var
Stream : TFileStream;
begin
Stream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'Speicher\Daten\1.OKM', fmOpenRead); //Er lädt hier die Streamdaten
Form2.ListBox1.Items.LoadFromStream(Stream); //Jetzt Lädt er alle Streamdaten in die Listbox
end;
Und am ende dies Daten aus der Listbox wieder speichert:

Delphi-Quellcode:
procedure TDatein.SaveToStream;
var
Stream : TFileStream;
begin
Stream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'Speicher\Daten\1.OKM', fmCreate);
Form2.ListBox1.Items.SaveToStream(Stream);
end;
Hier tritt leider immer ein Fehler auf! Allerdings nur wenn diese Datei bereits besteht.
Hatt jemand ne Idee wie man den Fehler beheben kann oder warum er überhaupt auftritt?
Du öffnest die Datei und läßt sie offen, da du den Stream nicht frei gibst. Dadurch wird die Datei gesperrt und dein Schreibversuch schlägt fehl. Mit dataspider's Änderung sollte das nicht mehr passieren.

Du solltest den Stream aber auch in der Methode "SaveToStream" deines Fensters wieder mit
Stream.Free freigeben...
  Mit Zitat antworten Zitat