вот мой код. не могу понять почему в процедуре записи при выполнении showmessage возникает ошибка accessViolation. судя по всему класс не инициализировался, но почему?
Код:
type
TspsStrka=class
Npr:Real;
constructor create();
procedure read(str:string);
end;
TSPS=class
name:string;
spsStroka:array[0..99999] of TspsStrka;
constructor create(openname:string);
procedure read;
procedure writetofile(savename:string);
end;
constructor TspsStrka.create();
begin
Npr:=0;
Npk:=0;
X:=0;
Y:=0;
end;
constructor TSPS.create(openname:string);
begin
name:=openname;
end;
procedure TspsStrka.read(str:string);
begin
Npr:=strtofloat(copy(str,2,16));
end;
procedure tsps.read;
var
t:TStringList;
i:Cardinal;
begin
t:=TStringList.Create;
t.LoadFromFile(name);
for i:=0 to t.Count-1 do begin
spsStroka[i]:=TspsStrka.create();
spsStroka[i].read(t[i]);
end;
t.Free;
end;
procedure TSPS.writetofile(savename:string);
begin
ShowMessage(FloatToStr(spsStroka[0].Npr));
end;
end.