Hallo,
ich würde über Treader/Twrioter gehen, wenn du daten in den stream laden/speichern willst. Dort sind schon routinen für strings, integers etc dabei, über irgendwelchen Längenangaben brauchst du dir keinen Kopf zerbrechen.
als Bsp:
Delphi-Quellcode:
procedure TForm1.ButtonSpeichernClick(Sender: TObject);
Var Stream:TFilestream;
begin
Stream:=TFileStream.Create('D:\TestStream',fmcreate);
try
//TWriter objekt erstellen und Daten in den Stream speichern
with TWriter.create(Stream,1024) do
try
WriteString(Memo1.Text);
WriteString(Edit1.Text);
WriteInteger(SpinEdit1.Value);
WriteBoolean(CheckBox1.Checked);
finally
free;
end;
finally
Stream.free;
end;
end;
procedure TForm1.ButtonLadenClick(Sender: TObject);
Var Stream:TFilestream;
begin
Stream:=TFileStream.Create('D:\TestStream',fmOpenRead or fmShareDenyNone);
try
//TReader objekt erstellen und Daten aus den Stream laden
with TReader.create(Stream,1024) do
try
Memo1.Text := ReadString;
Edit1.Text := ReadString;
SpinEdit1.Value := ReadInteger;
CheckBox1.Checked := ReadBoolean;
finally
free;
end;
finally
Stream.free;
end;
end;
Gruß Frank