Mark, you should change it so that it does not display skills in which the user is not ranked (-1) or show "N/A".
Edit: Here is my attempt. No form and no function. If you want a function with other data and such for each rank and user in a record or anything just say so.
I made this since I cannot sleep and haven't used SCAR in a while.
Output:

SCAR Code:
procedure RetreiveHighscores(Username : string; DisplayNR : boolean);
var
s : string;
skNames, Arr, tmp : TStringArray;
i, h : integer;
begin
s := GetPage('http://hiscore.runescape.com/index_lite.ws?player=' + Username);
Arr := Explode(Chr(10), s);
h := high(Arr);
if h < 25 then
exit;
skNames := ['Overall', 'Attack', 'Defence', 'Strength', 'Constitution',
'Ranged', 'Prayer', 'Magic', 'Cooking', 'Woodcutting',
'Fletching', 'Fishing', 'Firemaking', 'Crafting', 'Smithing',
'Mining', 'Herblore', 'Agility', 'Thieving', 'Slayer',
'Farming', 'Runecrafting', 'Hunter', 'Construction', 'Summoning',
'Dungeoneering'];
Writeln(Username);
Writeln(Replicate('-', 25));
for i := 0 to 25 do
begin
tmp := Explode(',', Arr[i]);
if pos('-1', tmp[1]) > 0 then
tmp[1] := 'Not Ranked';
if (not DisplayNR) and (tmp[1] = 'Not Ranked') then
Continue;
Writeln(Format('%s%s', [Padr(skNames[i], 15), tmp[1]]));
end;
Writeln(Replicate('-', 25));
end;
begin
RetreiveHighscores('Green098', False);
end.
DisplayNR governs whether or not if it will display skills that the user is not ranked in.