function get(s:string;var a:array of integer);
type ct='0'..'9';
var
i,j,k,l:integer;
t:string;
begin
j:=length(s);
i:=1;
repeat
while((i<=j)and(not(s[i]in[ct])))do inc(i);
t:='';
while((i<=j)and(s[i]in[ct]))do
begin
t:=t+s[i];
inc(i);
end;
if(t<>'')then
begin
val(t,k,l);
l:=length(a);
setlength(a,l+1);
a[l]:=k;
end;
until i>j
end;
I tak po kolei każdą linijke.
// za kod nie odpowiadam, bo pisze z pamieci (brak delphi pod nosem).
Flabra, chodzilo mi o proste rozwiazanie :) Probuje to skompilowac, jak na razie poprawilem besposrednie odwolanie do typu ct, kompilator tez zacina sie na setlength(a,l+1); a - to jest zwracana wartosc w integerach? Bo jesli tak to trzeba by ja bylo chyba za nawais wyciagnac. Poza tym co znaczy not(s[i]in[ct])? Jesli w literze numer i ze stringu s nie ma liczby od 0 do 9 ?
Trudniej mi poprawiac czyjes, niz napisac swoj kod:
var
tab3: tab100;
k,l,j,u: word;
stemp : string;
begin
for k:=0 to sList.Lines.Count-1 do
begin
l:=0;
j:=0;
u:=0;
repeat
inc(u);
l:= j;
repeat
inc(l);
until sList.Lines[k][l]=' ';
inc(j);
stemp:=copy(sList.Lines[k],j,l-j);
tab3[k,u]:=StrToInt(stemp);
j:=l;
until j>=length(sList.Lines[k])-1;
end;
choc twoj pewnie byl uniwersalniejszy, bo nie zalezny od ilosci spacji pomiedzy liczbami