Einzelnen Beitrag anzeigen

pszopp

Registriert seit: 7. Sep 2005
Ort: Alsdorf
95 Beiträge
 
Delphi 2010 Professional
 
#2

Re: mehrere streams in eine datei speichern?

  Alt 23. Aug 2006, 09:46
Hallo Weazy,

ja das ist möglich.
Du solltest in dem Ziel-Stream zuerst die Größe des Quellstreams speichern.
Danach kannst du mit CopyFrom die Daten von der Quelle in das Ziel speichern.
Dieser Vorgang kann dann für mehrere Quellen wiederholt werden.

Beim Laden solltest du dann zuerst die Größe laden und danach
entsprechend der geladenen Größe die passende Anzahl an Bytes von der
Quelle in Ziel kopieren.


Delphi-Quellcode:
// Speichern
VAR Size : Int64;
BEGIN

  Size := Source.Size;
  Target.Write(Size, SizeOf(Size));
  Source.Seek(0, soFromBeginning); // Lesezeiger an den Anfang des Streams setzen!
  Target.CopyFrom(Source, Size);

END;


// Laden
VAR Size : Int64;
BEGIN

  Source.Read(Size, SizeOf(Size));
  Source.CopyFrom(Target, Size);

END;
** ungetestet **

Das sollte mit allen TStreams klappen. Du kannst dann z.B. von 10 TMemoryStream in einen TFileStream speichern.

Gruß,
pszopp
www.pstipp.de | Tippseite zur Formel 1 und Fußball WM/EM - kostenlos und Just-For-Fun
  Mit Zitat antworten Zitat