Hej
Måste du göra det med kod, går det inte lättare att göra en Query där Du säger till om att sortera i omvänd ordning!
------------------
BGM
Programmeringur Programmering - Övrigt
2 svar · 361 visningar · startad av Erik25
hej!
finns det någon som kan hjälpa mig. Jag håller på göra ett tävlingsprogram. Jag vill skriva ut resultat i alla deltagarna i en listruta tex den som har mest poäng kommer först osv. men jag ett litet problem som jag kunde lösa det.
när jag kör programmet får jag ett fel meddelande t.ex. if jaktArr^Skjut_res > jaktArr[j]^Skjut_res then begin
type pTjakt=^Tjakt;
procedure TForm1.Button2Click(Sender: TObject);
var f:file of Tjakt;
p:Tjakt;
Jaktarr:array[1..50] of PTjakt;
Ptemp:PTjakt;
j,i:integer;
begin
lboxpernr.clear;
AssignFile(f,'jaktfil.dat');
reset(f);
while not eof(f) do begin
read(f,p);
if (p.Tavlings_klass=Anvandare)then
for i:= 1 to 50 do begin
jaktarr:=Allocmem(sizeof(Tjakt));
read(f,jaktarr^);
end
else
jaktarr:=nil;
end;
//kolla här: if (jaktArr^Skut_res > jaktArr[j]^Skjut_res)then begin
Ptemp:=jaktarr;
jaktarr:=jaktarr[j];
jaktarr[j]:=Ptemp;
end;
for i:= 1 to 50 do begin
if jaktarr<> nil then
freemem(jaktarr,sizeof (Tjakt));
end;
for i:= 1 to 50 do begin
//kolla här: lboxpernr.items.add(p.namn+' '+inttostr(jaktarr*));
CloseFile(f);*
Hej
Måste du göra det med kod, går det inte lättare att göra en Query där Du säger till om att sortera i omvänd ordning!
------------------
BGM
Tycker det verkar som din kod inhåller flera kontigheter/fel. Tycker det vore bättre att använda en lista(tex Tlist) istället för en array och använda object istället för records.
Men detta borde väl fixa de rader du har problem med:
//kolla här:
if (jaktArr.Skut_res^ > jaktArr[j].Skjut_res^)then begin
//kolla här:
lboxpernr.items.add(p.namn+' '+inttostr(jaktarr.Skut_res^));
OBS har ej testat din/min kod ;)