Pomocy!!!
Nie znam sią na Stream'ach, czytałem, spróbowałem i nie wiem co jest nie tak.
Jednym Buttonem zapisuję, drugim czytam. I jest ok jak najpierw zapiszę, to można coś tam robić na Formie i w każdej chwili plik odczytać. Jak chcę od razu odczytać zapisany wcześniej plik to wywala mi błąd i znowu zapisz i później jest ok
type
Trec = record
color:TColor;
name:string;
end;
Ttab = array of array of Trec;
MTrecord =^Trecord;
Trecord = record
nazwa:string;
tab:Ttab;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
k,w:Integer;
rec1:MTrecord;
f_s:TFileStream;
begin
rec1:=AllocMem(SizeOf(Trecord));
with rec1^ do
begin
nazwa:='1234567890123456789012345678901234567890123456789';
SetLength(tab,202);
for k:=0 to 200 do
begin
for w:=0 to 200 do
begin
SetLength(tab[k],202);
if (w=50)and(k=50) then
begin
tab[k][w].name:='proba';
tab[k][w].color:=clGreen;
end
else
begin
tab[k][w].name:='ble ble';
tab[k][w].color:=clRed;
end;
end;
end;
end;
f_s:=TFileStream.Create('C:\\Windows\\Pulpit\\plik.str', fmCreate);
f_s.WriteBuffer(rec1^,SizeOf(Trecord));
f_s.Free;
FreeMem(rec1);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
rec1:MTrecord;
f_s:TFileStream;
begin
rec1:=AllocMem(SizeOf(Trecord));
f_s:= TFileStream.Create('C:\\Windows\\Pulpit\\plik.str',fmOpenRead);
f_s.ReadBuffer(rec1^,SizeOf(Trecord));
f_s.Free;
Edit1.Text:=rec1^.tab[50][50].name;
FreeMem(rec1);
end;