Entwickler-Ecke

Sonstiges (Delphi) - Exception bei StringList-Einträge löschen


bis11 - So 22.12.02 12:34
Titel: Exception bei StringList-Einträge löschen
Hi,

wahrscheinlich nur eine Kleinigkeit, aber ich komme im Moment nicht drauf. Wenn ich das Programm ausführe bekomme ich immer folgende Fehlermeldung :

Zitat:

eine Exception der Klasse EStringListError aufgetreten. Meldung:
'Listenindex überschreitet das Maximum(82)'.


Diese Fehlermeldung kommt in folgender Procedure :

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure Linedelete(Filename, Search: string);             
var                                                                             
  inhalt : TStringList;                                                    
  line : integer;                                                            
begin                                                                          
  inhalt := TStringList.Create;                                       
  inhalt.LoadFromFile(Filename);                                   
  for Line := 16 to inhalt.Count-1 do begin                     
    if PosN(Search,inhalt.Strings[Line],1) = 1 then begin  
        inhalt.Delete(Line-1);
    end;                                    
  end;                                      
  inhalt.SaveToFile(Filename);    
end;


PosN gibt mir nur die Position zurück, wo der String steht.
Ich mal wieder den Wald vor lauter Bäumen nicht, könnt Ihr mir sagen, was daran verkehrt ist ?


Christian S. - So 22.12.02 13:15

Die Schleife muss anders herum laufen. Sonst läuft er zu dem alten Count, der, nachdem was gelöscht wurde, aber nicht mehr stimmt.


bis11 - So 22.12.02 14:15

Hi,

ich danke Dir Peter, hat hervorragend funktioniert.