Witam grupowiczów. Mam prośbę odnośnie jednej mojej procedury. może mi ktoś wskazać błąd jaki popełniam w niej. Kompilator ciągle wskazuje ERangeError (Range check Error). Porcedura ta ma za zadanie wyciągać ze strony html wszystkie odnośniki
procedure TForm1.ahref(gdzie: string); //gdzie - przechowuje strone html
var
plik: textfile;
pozycja, i: integer;
tab: array of char;
begin
assignfile(plik, 'Dane.txt');
rewrite(plik);
while length(gdzie) > 0 do
begin
try
fillchar(tab, sizeof(tab), 0);
pozycja := pos(lowercase('<'), lowercase(gdzie));
if pozycja > 0 then delete(gdzie, 1, pozycja)
else break;
pozycja := pos(lowercase('a'), lowercase(gdzie));
if pozycja > 0 then delete(gdzie, 1, pozycja)
else break;
pozycja := pos(lowercase('href'), lowercase(gdzie));
if pozycja > 0 then delete(gdzie, 1, pozycja);
pozycja := pos(lowercase('"'), lowercase(gdzie));
if pozycja > 0 then delete(gdzie, 1, pozycja);
pozycja := pos(lowercase('"'), lowercase(gdzie));
setlength(tab, pozycja);
for i := 1 to pozycja - 1 do
if gdzie[i] > #38 then
tab[i - 1] := gdzie[i];
pozycja := pos(#0, string(tab));
setlength(tab, pozycja-1);
if length(tab) > 0 then
if pos('//', string(tab)) = 0 then
if pos(':', string(tab)) = 0 then writeln(plik, string(tab));
except;
end;
end;
closefile(plik);
;
end;
Widzę że chyba nikt nie jarzy tej procedury :D.