Witam, piszę program z biblioteką łączoną statycznie, ma on za zadanie wyliczyć procent rekordów z wartością 'Tak', lecz po wyliczeniu otrzymuje zero ;/ Gdzie jest błąd?
Biblioteka
type data=record
popiera:string;
plec:Char;
miasto:string;
wykszt:string;
wiek:18..100;
czy:string;
end;
function procent(z:array of data):extended;stdcall;
var i,a:integer;
begin
a:=0;
for i:=1 to 50 do
begin
if z[i].popiera='Tak' Then
begin
a:=a+1;
end;
end;
Result:=a/2;
end;
exports procent index 1;
Program
type data=record
popiera:string;
plec:Char;
miasto:string;
wykszt:string;
wiek:18..100;
czy:string;
end;
var
Form1: TForm1;
s,a:string;
i,k:integer;
d:extended;
var BS: Textfile;
var p:array[1..50] of data;
function proc(z:array of data):extended;stdcall;external 'Project2.dll' index 1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
Edit1.Text:=OpenDialog1.FileName;
s:=Edit1.Text;
try
AssignFile(BS,s);
Reset(BS);
for i:=1 to 50 do
begin
readln(BS,p[i].popiera);
readln(BS,p[i].plec);
readln(BS,p[i].miasto);
readln(BS,p[i].wykszt);
readln(BS,p[i].wiek);
readln(BS,p[i].czy);
end;
Edit2.Text:=p[39].miasto;
CloseFile(BS);
d:=proc(p);
edit3.Text:=FloattoStr(d);
except
ShowMessage('Niepoprawny plik!');
end;
end;
end.