Re: TStringlist: Delete in einer Schleife
5. Sep 2006, 16:25
Das wäre falsch, wenn dann For i := List.Count-1 DownTo 0 Do
du hast die -1 bei Count vergessen.
Und zu der angemerkten Repeat/Until Schleife: Die ist nur richtig, wenn man vorher sicherstellt, dass mindestens ein Element in der Liste enthalten ist, weil er beim ersten Durchlauf sofort auf das i. Element zugreift, wobei i wohl mit 0 initialisiert worden ist. Daher: immer aufpassen bei Fuss-gesteuerten Schleifen, da die Bedingung immer erst nach einem Durchlauf überprüft wird.
Und dann noch zu der Count Read Only Anmerkung: Dies kann man nur auf TStrings und seine Nachfahren anwenden, bei anderen Liste wie z.B. von TList abgeleitet ist Count setzbar um eine bessere Speicheroptimierung zu erreichen. Wenn man weiss dass man 40 Einträge hinzufügt, kann man bei den Listen dieses Optimierter gestalten.
|