wenn du ein Item löschst wird die Liste kürzer, aber die Randbereiche der Schleife werden nach begin dieser nicht mehr aktuallisiert.
Um das Problem zu umgehen solltest du die Schleife Rückwärts durchlaufen dann tritt das Problem nicht auf.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| for i2:= neu.count-1 downto 0 do begin for i3:= 0 to alt.count-1 do begin if pos(neu[i2], alt[i3]) >0 then neu.Delete(i2); end; end; for i4:=0 to neu.count-1 do memo1.lines.add(neu[i4]); |
Edit:
natürlich hat jaenicke recht
(hab nicht genau genug hingeschaut aus welcher liste gelöscht wird, habs korrigiert)