Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
Delphi 2005 Professional
|
Stream im Stream abspeichern
24. Mär 2004, 19:48
hallo. Da da ein Problem. Ich erstelle von einen Memofeld einen Stream. Diesen wollte ich in einen FileStreamRecord mit abspeichern.
Code:
procedure TFormDateneingabeBuecher.BtAddClick(Sender: TObject);
Var Test : TStream;
begin
Memo1.Lines.SaveToStream(Test);
BefBuecher.Schreiben(StrToInt(Edit1.Text),Edit2.Text,Edit3.Text, Test);
end;
procedure TBuecher.Schreiben(ID: Integer; Abkuerzung : String; Titel: Ansistring; Langbeschreibung : TStream);
var
Stream: TStream;
I,I1: integer;
Len: Longint;
Dateiversion : Integer;
begin
Dateiversion := 1;
Setlength(Buecher, length(Nachteil) + 1);
Buecher[High(Buecher)].ID := ID;
Buecher[High(Buecher)].Abkuerzung := Abkuerzung;
Buecher[High(Buecher)].Titel := Titel;
Buecher[High(Buecher)].Langbeschreibung := Langbeschreibung;
Stream := TFileStream.Create('Buecher.tdt', fmCreate);
try
Stream.Write(Dateiversion, SizeOf(Dateiversion));
Stream.Write(I, SizeOf(I));
Len := Length(Buecher);
Stream.Write(Len, SizeOf(Len));
for I := 0 to Length(Buecher) - 1 do
begin
Stream.Write(Buecher[I].ID, SizeOf(Buecher[I].ID));
Len := Length(Buecher[I].Abkuerzung);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Buecher[I].Abkuerzung)^, Len);
Len := Length(Buecher[I].Titel);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Buecher[I].Titel)^, Len);
//Hier weiß ich nicht weiter, wie Schreibt man einen Stream in einen Stream?
Len := Length(Buecher[I].Langbeschreibung);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Buecher[I].Langbeschreibung)^, Len);
end;
finally
Stream.Free;
end;
end;
Edit: Oder hat jemand eine besseren vorschlag?
Marco Wer Rechtschreibfehler findet, der darf sie behalten
Carpe Diem - Nutze den Tag (und zwar den ganzen!)
|
|
Zitat
|