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

Oto procedura:

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.