Autor Beitrag
allen928cn
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 23.01.07 11:51 
hi,allenzusammen.
ich beschäftige mich jetzt miet Tmemorystream,hab das folgende Problem

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
for x := 0 to ((y div 2)-1do 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);// die Größe von stream2 ändert sich 
     stream1.free;
end;

 Stream2.Position := 0;
 JvRichEdit1.StreamFormat := sfRichText;
 JvRichEdit1.Lines.loadfromstream(stream2);// die texteditor lädt nicht die komplette stream2 auf
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 user profile iconraziel: Delphi-Tags hinzugefügt
nivosta
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 35



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 23.01.07 13:05 
oh, hab eine Zeile vergessen!

ausblenden 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)-1do 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 user profile iconraziel: Delphi-Tags hinzugefügt
nivosta
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 35



BeitragVerfasst: 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));