Einzelnen Beitrag anzeigen

Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#1

Stream im Stream abspeichern

  Alt 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!)
  Mit Zitat antworten Zitat