Entwickler-Ecke

Dateizugriff - TStreams kopieren


Aya - Do 17.07.03 19:03
Titel: TStreams kopieren
Hi,

ich hab ein kleines Problem ;)

Ich habe 3 TStreams: A, B unc C


Delphi-Quelltext
1:
2:
var
  A, B, C: TStream;


In Stream A speichere ich nun ein TBitmap:


Delphi-Quelltext
1:
Bitmap.SaveToStream(A);                    


Nun schreibe ich in Stream B die Größe von Stream A und hänge anschließend Stream A an Stream B dran:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  sSize: Int64;
begin
  sSize:=A.Size;
  A.Seek(0,soFromBeginning);
  B.Write(sSize,SizeOf(sSize));
  B.CopyFrom(A,sSize);


Soweit sogut... nun möchte ich aber das Bitmap wieder laden (Stream A existiert nun nichtmehr!):


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  sSize: Int64;
begin
  B.Read(sSize,SizeOf(sSize9);
  C.CopyFrom(B,sSize);
  Bitmap.LoadFromStream(C);


Beim Laden des Bitmaps, rödelt der jetzt ne ewigkeit an der Zeile C.CopyFrom rum... ich hab es jedesmal abgebrochen, da er selbst nach 1 Minute da nochnich weiter war... was ist daran falsch???

Au'revoir,
Aya~


Horst - Do 17.07.03 19:25

Hallo,

die genau Ursache kann ich so auch nicht ersehen, da ich mich mit streams noch nicht so intensiv beschäftigt habe. Ich habe aber die Vermutung, dass du ein Begrenzungsbyte setzen mußt, sonst versucht das Programm beim Laden den kompletten Speicher auszulesen.

Oder Du versuchst es mal mit writeBuffer, diese Methode gibt zumindestens einen Fehler zurück, wenn etwas schief gelaufen ist. Hilf das weiter :?:

Gruß
Horst
:wave:

Moderiert von user profile iconTino: Absätze entfernt.


Aya - Do 17.07.03 21:20

Hat sich erledigt.. hab nen fehler beim Speichern in den Stream gemacht :oops: