witajcie
no ostatnio spotkałem się z dziwną sytuacją, napisałem sobie programik, który zapisuje dane do pliku, tyle że plik to prawie 500kb*ilość zapisanych do niego rekordów, normalnie szok, albo o czymś zapomniałem [nuda] (każdemu się zdaża...) albo mi kom źle przelicza, hmmm, może ktoś pomoże co?
długi kodzik z najważniejszymi częściami
wszystkie dane mimo iż występują są puste, prócz tych związanych z imieniem (tab[i].imie)
type
bitwa=packed record
gracz1,gracz2,armia1,armia2:string[50];
pts1,pts2,ptsl1,ptsl2:integer;
opis:string[255];
end;
type
gracz=packed record
imie:string[50];
armia:string[50];
winm,wins,winmi,losm,loss,losmi,r:integer;
ptsl,ptssz,ptsss,roznica:integer;
bitwy:array[1..1000]of bitwa;
ilebitw:integer;
end;
var
Form1: TForm1;
Mode: TDeviceMode;
s:string;
ExtendedStyle:Integer;
p:string;
ilegraczy,i,j,k:integer;
plik:file of gracz;
tab:array[1..1000]of gracz;
tab1:array[1..1000]of gracz;
nazwapliku:string[50];
gr:gracz;
procedure TForm1.Zapiszbazdanych1Click(Sender: TObject);
begin
if (nazwapliku<>'')then
begin
assignfile(plik,nazwapliku);
rewrite(plik);
for i:=1 to ilegraczy do
begin
gr.imie:=tab[i].imie;
{gr.armia:=tab[i].armia;
gr.winm:=tab[i].winm;
gr.wins:=tab[i].wins;
gr.winmi:=tab[i].winmi;
gr.r:=tab[i].r;
gr.losm:=tab[i].losm;
gr.loss:=tab[i].loss;
gr.losmi:=tab[i].losmi;
gr.ptsl:=tab[i].ptsl;
gr.ptssz:=tab[i].ptssz;
gr.ptsss:=tab[i].ptsss;
gr.roznica:=tab[i].roznica;
gr.ilebitw:=tab[i].ilebitw;
for k:=1 to tab[i].ilebitw do
begin
gr.bitwy[k].gracz1:=tab[i].bitwy[k].gracz1;
gr.bitwy[k].gracz2:=tab[i].bitwy[k].gracz2;
gr.bitwy[k].armia1:=tab[i].bitwy[k].armia1;
gr.bitwy[k].armia2:=tab[i].bitwy[k].armia2;
gr.bitwy[k].pts1:=tab[i].bitwy[k].pts1;
gr.bitwy[k].pts2:=tab[i].bitwy[k].pts2;
gr.bitwy[k].ptsl1:=tab[i].bitwy[k].ptsl1;
gr.bitwy[k].ptsl2:=tab[i].bitwy[k].ptsl1;
gr.bitwy[k].opis:=tab[i].bitwy[k].opis;
end; }
write(plik,gr);
end;
closefile(plik);
end;
end;