Hallo,
ich verwende schon seit einiger Zeit TFileStream zum Speichern von Daten auf Festplatte und war kürzlich sehr erstaunt, als ich bemerken musste, dass bestimmte Daten "nicht" gespeichert wurden, obwohl ich lange der Meinung war, dass die Routine korrekt arbeitet.
Seither ist die Welt für mich nicht mehr in Ordnung.
Beispiel:
var RWFile:TFileStream;
Procedure Speichern;<br>
begin<br>
...<br>
if FileExists(FileName) then RWFile := TFileStream.Create(FileName, fmOpenWrite or fmShareExclusive)<br>
else RWFile := TFileStream.Create(FileName, fmCreate);
RWFile.WriteBuffer( BufferVar, VarSize );<br>
...<br>
end;
Procedure Lesen;<br>
begin<br>
...<br>
RWFile := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
RWFile.ReadBuffer( BufferVar, VarSize );<br>
...<br>
end;
Schliessen der Datei:
finally<br>
FreeAndNil(RWFile);<br>
end;
Ich habe nun die Vermutung, dass das Schliessen der Datei mit Free nicht korrekt ist. Leider ist in der Hilfe von Delphi 5 darüber nichts erwähnt.
Mache ich etwas falsch ?
Helmut
ich verwende schon seit einiger Zeit TFileStream zum Speichern von Daten auf Festplatte und war kürzlich sehr erstaunt, als ich bemerken musste, dass bestimmte Daten "nicht" gespeichert wurden, obwohl ich lange der Meinung war, dass die Routine korrekt arbeitet.
Seither ist die Welt für mich nicht mehr in Ordnung.
Beispiel:
var RWFile:TFileStream;
Procedure Speichern;<br>
begin<br>
...<br>
if FileExists(FileName) then RWFile := TFileStream.Create(FileName, fmOpenWrite or fmShareExclusive)<br>
else RWFile := TFileStream.Create(FileName, fmCreate);
RWFile.WriteBuffer( BufferVar, VarSize );<br>
...<br>
end;
Procedure Lesen;<br>
begin<br>
...<br>
RWFile := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
RWFile.ReadBuffer( BufferVar, VarSize );<br>
...<br>
end;
Schliessen der Datei:
finally<br>
FreeAndNil(RWFile);<br>
end;
Ich habe nun die Vermutung, dass das Schliessen der Datei mit Free nicht korrekt ist. Leider ist in der Hilfe von Delphi 5 darüber nichts erwähnt.
Mache ich etwas falsch ?
Helmut
Comment