![]() |
Stream
Hi :hi:
Habe ein Problem mit meinem Stream irgendwie nimmt er nicht das Speichern meiner Cellen an kann mir einer sagen wo ich einen Fehler habe. Memos und Label funktionieren wunderbar.
Delphi-Quellcode:
Danke sascha
{Stream Speichern}
procedure TForm7.memospeichern; var FileStream: TMemoryStream; memos :TFileName; x, y, row, col,len :Word; a,c,e,g,i,k,m,o,q,s :String; b,d,f,h,j,l,n,p,r,t :integer; begin a:= Memo1.Text; b:=Length(a); c:= Memo2.Text; d:=Length(c); e:= Memo3.Text; f:=Length(e); g:= Memo4.Text; h:=Length(g); i:= Memo5.Text; j:=Length(i); k:= Memo6.Text; l:=Length(k); m:= Label8.Caption; n:=Length(m); o:= Label10.Caption; p:=Length(o); q:= Label3.Caption; r:=Length(q); s:= Label1.Caption; t:=Length(s); FileStream := TMemoryStream.Create; col:= StringGrid1.ColCount -1; row:= StringGrid1.RowCount -1; FileStream.WriteBuffer(row, SizeOf(Word)); FileStream.WriteBuffer(col, SizeOf(Word)); for x:= 1 to row do for y:= 1 to col do buff:= StringGrid1.Cells[y,x]; len:= length(buff); FileStream.WriteBuffer(len, SizeOf(Word)); FileStream.WriteBuffer(buff[1], len); FileStream.Write(b, SizeOf(Integer)); // Memo1 FileStream.Write(a[1], b); FileStream.Write(d, SizeOf(Integer)); // Memo2 FileStream.Write(c[1], d); FileStream.Write(f, SizeOf(Integer)); // Memo3 FileStream.Write(e[1], f); FileStream.Write(h, SizeOf(Integer)); // Memo4 FileStream.Write(g[1], h); FileStream.Write(j, SizeOf(Integer)); // Memo5 FileStream.Write(i[1], j); FileStream.Write(l, SizeOf(Integer)); // Memo6 FileStream.Write(k[1], l); FileStream.Write(n, SizeOf(Integer)); // Label8 FileStream.Write(m[1], n); FileStream.Write(p, SizeOf(Integer)); // Label10 FileStream.Write(o[1], p); FileStream.Write(r, SizeOf(Integer)); // Label3 FileStream.Write(q[1], r); FileStream.Write(t, SizeOf(Integer)); // Label1 FileStream.Write(s[1], t); memos:= ExtractFilePath(ParamStr(0))+'Bemerkungen\'+ ComboBox4.Text+'.txt'; FileStream.SaveToFile(memos); FileStream.Free; end; |
Re: Stream
Ist es richtig das bei deinen for-Schleifen keinerlei begins und ends zu sehen sind? :gruebel:
Delphi-Quellcode:
Vielleicht so?
for x:= 1 to row do
for y:= 1 to col do buff:= StringGrid1.Cells[y,x]; len:= length(buff); FileStream.WriteBuffer(len, SizeOf(Word)); FileStream.WriteBuffer(buff[1], len);
Delphi-Quellcode:
for x:= 1 to row do
for y:= 1 to col do begin buff:= StringGrid1.Cells[y,x]; len:= length(buff); FileStream.WriteBuffer(len, SizeOf(Word)); FileStream.WriteBuffer(buff[1], len); end; |
Re: Stream
Stimmt hatte ich vergessen
Delphi-Quellcode:
Aber jetzt werden nicht mehr die Labels und Memos gespeicher
for x:= 1 to row do
for y:= 1 to col do begin buff:= StringGrid1.Cells[y,x]; len:= length(buff); FileStream.WriteBuffer(len, SizeOf(Word)); FileStream.WriteBuffer(buff[1], len); end; . . . . . . end; |
Re: Stream
dann hast du noch was anderes jetzt beim korrigieren vermehrt!
Denn das Speichern deiner Memos und Labels hat ja eigentlich überhaupt nichts mit der Schleife zu tun, oder etwa doch??? :gruebel: |
Re: Stream
Ich möchte alle memos und Labels sowie das StringGrid in eine .txt speichern
|
Re: Stream
Ich weis doch!!! Du scheinst mich nicht verstanden zu haben...
Ich kenn mich mit den Streams abspeichern jetzt nicht hundert pro aus aber rein von der Logik muss das Abspeichern der labels und Memos jetzt auch noch gehen (weil vorher gings ja auch... hast du jedenfalls gesagt). Und geändert hast du ja nur was and er Schleife und die hat doch mit dem eigentlichen Abspeichern der Labels und Memos nichts zu tun!? Die ist doch bloß für das Abspeichern des StringGrids da!? Vielleicht machst du ja ein Fehler beim Auslesen? Oder klappt das Schreiben schon nicht? (Exception?) |
Re: Stream
Hi hatte wirklich nur das begin und end vergessen :wall: :wall:
Habe jetzt aber ein anderes Problem Irgendwas stimmt beim laden oder Speichern meines Streams nicht, beim Speichern wird alles sauber in meine .txt gespeichert auch lesbar also schließe ich den Fehler beim Speichern aus, beim laden werden alle Daten des StringGrids auch sauber geladen nur die Memos und Labels erhalten nur ein schwarzen strich woran könnte das liegen. Stream Speichern
Delphi-Quellcode:
Stream Laden{Stream Speichern} procedure TForm7.memospeichern; var FileStream: TMemoryStream; memos :TFileName; x, y, row, col,len :Word; a,c,e,g,i,k,m,o,q,s :String; b,d,f,h,j,l,n,p,r,t :integer; begin a:= Memo1.Text; b:=Length(a); c:= Memo2.Text; d:=Length(c); e:= Memo3.Text; f:=Length(e); g:= Memo4.Text; h:=Length(g); i:= Memo5.Text; j:=Length(i); k:= Memo6.Text; l:=Length(k); m:= Label8.Caption; n:=Length(m); o:= Label10.Caption; p:=Length(o); q:= Label3.Caption; r:=Length(q); s:= Label1.Caption; t:=Length(s); FileStream:= TMemoryStream.Create; col:= StringGrid1.ColCount -1; row:= StringGrid1.RowCount -1; FileStream.Write(row, SizeOf(Word)); FileStream.Write(col, SizeOf(Word)); for x:= 1 to row do for y:= 1 to col do begin buff:= StringGrid1.Cells[y,x]; len:= length(buff); FileStream.Write(len, SizeOf(Word)); FileStream.Write(buff[1], len); end; FileStream.Write(b, SizeOf(Integer)); // Memo1 FileStream.Write(a[1], b); FileStream.Write(d, SizeOf(Integer)); // Memo2 FileStream.Write(c[1], d); FileStream.Write(f, SizeOf(Integer)); // Memo3 FileStream.Write(e[1], f); FileStream.Write(h, SizeOf(Integer)); // Memo4 FileStream.Write(g[1], h); FileStream.Write(j, SizeOf(Integer)); // Memo5 FileStream.Write(i[1], j); FileStream.Write(l, SizeOf(Integer)); // Memo6 FileStream.Write(k[1], l); FileStream.Write(n, SizeOf(Integer)); // Label8 FileStream.Write(m[1], n); FileStream.Write(p, SizeOf(Integer)); // Label10 FileStream.Write(o[1], p); FileStream.Write(r, SizeOf(Integer)); // Label3 FileStream.Write(q[1], r); FileStream.Write(t, SizeOf(Integer)); // Label1 FileStream.Write(s[1], t); memos:= ExtractFilePath(ParamStr(0))+'Bemerkungen\'+ ComboBox4.Text+'.txt'; FileStream.SaveToFile(memos); FileStream.Free; end;
Delphi-Quellcode:
{Stream Laden} procedure TForm7.memoladen; var x, y, row, col,len :Word; memos :TFileName; FileStream :TMemoryStream; i,l :Integer; s :String; begin FileStream := TMemoryStream.Create; memos:=ExtractFilePath(ParamStr(0))+'Bemerkungen\'+ ComboBox3.Text+'.txt'; FileStream.LoadFromFile(memos); FileStream.Read(row, SizeOf(Word)); FileStream.Read(col, SizeOf(Word)); for x:= 1 to row do for y:= 1 to col do begin FileStream.Read(len, SizeOf(Word)); SetLength(buff, len); FileStream.Read(buff[1], len); StringGrid1.Cells[y,x]:= buff; end; l := 0; FileStream.Position:=0; for i := 1 to 10 do begin FileStream.Read(l, SizeOf(Integer)); setlength(s, l); // legt die Länge einer String- Variable fest FileStream.Read(s[1], l); case i of 1: Memo1.Text:= s; 2: Memo2.Text:= s; 3: Memo3.Text:= s; 4: Memo4.Text:= s; 5: Memo5.Text:= s; 6: Memo6.Text:= s; 7: Label8.Caption:= s; 8: Label10.Caption:= s; 9: Label3.Caption:= s; 10: Label1.Caption:= s; end; end; FileStream.Free; end; |
Re: Stream
Zitat:
Ganz gemäß unseres Kodex "Neue Frage -> Neuer Thread" :zwinker: - = C L O S E D = - |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz