Einzelnen Beitrag anzeigen

Michael II
Online

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
739 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Eintrag aus TStringListe löschen

  Alt 1. Sep 2017, 15:47
Ich empfehle dir immer möglichst auf Wiederverwendbarkeit zu achten, indem du solche Aufgaben in eine Prozedur/Funktion auslagerst. Mit der Zeit hast du einen Pool von Funktionen, welche du bei Bedarf einfach nur noch in deinen Code kopieren kannst.

Also etwa so:
Wort:string aus liste:TStringList entfernen:

Delphi-Quellcode:
procedure wort_aus_liste_entfernen( wort : string; liste : TStringList );
var i : integer;
begin
  i := 0;
  while i < liste.Count do
    if liste.strings[i] = wort then liste.Delete( i ) else inc(i);
end;

Dein "Items-Fehler": Fahr mal mit dem Mauszeiger auf TStringList und drücke F1, dann dort unter Eigenschaften und suche nach der Eigenschaft Items. TStringList kennt übrigens die Eigenschaft Strings.

for Schleife: Wie andere bereits erwähnt haben: Du definierst eine for... Schleife. Enthält deine Liste zum Beispiel 1000 Einträge, dann wird deine Schleife 1000 Mal durchlaufen. Wenn du nun innerhalb dieser Schleife Listenelemente löschst, dann greifst du irgendwann via Index i auf Listenelemente zu, welche es an Position i gar nicht mehr gibt.
Michael Gasser
  Mit Zitat antworten Zitat