Thema: Delphi for-Schleife und Array

Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#1

for-Schleife und Array

  Alt 30. Nov 2006, 10:42
Hi,
ich bekomme beim Aufruf der folgenden Funktion immer die Meldung "Listindex überschreitet das Maximum":
Delphi-Quellcode:
function GetAllCookies:TMozCookies;
var
 Cookies: TStringList;
 Line, len: Integer;
 tempcookies: TMozCookies;
begin

 //if cookie file does exist
 if FileExists(CookieFile) then
  begin

   //load the file
   Cookies := TStringList.Create;
   Cookies.LoadFromFile(CookieFile);

   //get every cookie
   for Line := 0 to Cookies.Count -1 do
    begin

     //delete comments and empty lines
     if pos('#', Cookies.Strings[Line]) > 0 then
      begin

       Cookies.Delete(Line);

      end
       else if Cookies.Strings[Line] = 'then
        begin

         Cookies.Delete(Line);

       end
      else
       begin

        len := Length(tempcookies);
        SetLength(tempcookies, len + 1);
        tempcookies[len] := CreateMozCookie(Cookies.Strings[Line]);

       end;

    end;

   Cookies.Free;
   Result := tempcookies;

  end;
end;
CookieFile ist eine String-Variable mit einen Dateipfad.
CreateMozCookie gibt einen Record zurück. siehe http://www.delphipraxis.net/internal...ct.php?t=97413

Der Aufruf geschieht so:
Delphi-Quellcode:
procedure Tfrm_MozCookie_Demo.btn_refreshClick(Sender: TObject);
var
 mc: TMozCookies;
 i: Integer;
begin

 lst_cookies.Clear;

 mc := GetAllCookies;

 for i := 0 to Length(mc) -1 do
  begin

   Lst_cookies.Items.Add(mc[i].domain);

  end;

end;
Schaut euch mal eure cookies.txt von Firefox an. Da sind ganz oben 4 Zeilen mit Kommentaren und 1 leere Zeile. Die möchte ich entfernen und eben anschließend die Records den Array of Record zuweisen. Aber es wird nur ein Kommentar entfernt, die anderen bleiben erhalten.

Wieso? Und warum bekomme ich "Listindex überschreitet das Maximum"????
  Mit Zitat antworten Zitat