Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - TMemoryStream Ausgabe!
allen928cn - Di 23.01.07 11:51
Titel: TMemoryStream Ausgabe!
hi,allenzusammen.
ich beschäftige mich jetzt miet Tmemorystream,hab das folgende Problem
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| for x := 0 to ((y div 2)-1) do begin stream1 :=TMemoryStream.Create; SDTable1.open; SDTable1.Edit; TBlobField(SDTable1.FieldByName('InhaltDE_Text')).SaveToStream(stream1); stream1.Position := 0; stream2.Position := stream2.Size; stream2.CopyFrom(stream1,0); stream1.free; end;
Stream2.Position := 0; JvRichEdit1.StreamFormat := sfRichText; JvRichEdit1.Lines.loadfromstream(stream2);end; |
stream2 gibt nur die erste stream1 aus,d.h. stream2 gibt die stream1 aus,nur wenn x:= 0 aber die Größe von stream2 ändert sich jetztes mal.
Wer es weiss ,bitte mir einen Hinweis geben! vielen Dank!!!!
Moderiert von
raziel: Delphi-Tags hinzugefügt
nivosta - Di 23.01.07 12:01
Hi,
wo für ist den die for schleife gut?
Und wieso immer ein table edit?
Du liest ja immer das gleiche aus dem Tabellenfeld wieso eigentlich?
Gruß
Hubert
allen928cn - Di 23.01.07 13:05
oh, hab eine Zeile vergessen!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| stream2 :=TMemoryStream.Create;
for x := 0 to ((y div 2)-1) do begin stream1 :=TMemoryStream.Create; SDTable1.open; SDTable1.locate('TXTNr;SprID',VarArrayOf([string(b[2*x+1]),string(a[0])]),[loPartialKey]); TBlobField(SDTable1.FieldByName('InhaltDE_Text')).SaveToStream(stream1); stream1.Position := 0; stream2.Position := stream2.Size; stream2.CopyFrom(stream1,0); stream1.free; end; Stream2.Position := 0; JvRichEdit1.StreamFormat := sfRichText; JvRichEdit1.Lines.loadfromstream(stream2); stream2.Free; end; |
mit "SDTable1.locate" fokussiere ich eine Zeile, die jedes mal mit "string(b[2*x+1]" und "string(a[0]" bestimmt wird,dann wird der Text in dem Feld 'InhaltDE_Text' in stream1 gespeichert.
eigentlich wollte ich jeden einzelnen Text in stream2 hinzufügen, und am End alle Texte von stream2 ausgeben.aber das klappt irgendwie nicht!
Moderiert von
raziel: Delphi-Tags hinzugefügt
nivosta - Di 23.01.07 14:06
Ich habe im moment kein delphi hier aber ich glaube da copy überschreibt den alten inhalt, somit würde ich mal ein write versuchen.
Schreibe Stream1 in eine String variable und anschliessent die Variable auf den Stream:
stream1.read(meinevar[0],stream1.size); //weiß jetzt nicht geneu ob 0 oder 1 mal testen
sttream2.write(pointer(meinevar)^,length(meinevar));
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!