Registriert seit: 8. Nov 2006
1.360 Beiträge
Delphi 10.3 Rio
|
Re: Stream
14. Feb 2007, 17:08
Hi hatte wirklich nur das begin und end vergessen
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 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;
Stream Laden
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;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...
Surft Ihr mit dem Taschenrechner?"
|