Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Prüfen, ob ein String in der ListBox schon vorhanden ist

  Alt 27. Okt 2009, 14:31
ganz simpel:

Delphi-Quellcode:
if MeineListBox.Items.IndexOf(NeuerString)<0 then
Begin
  MeineListBox.Items.Add(NeuerString);
End;
Edit: Da bin ich ja nicht der einzige

Deine Version machte folgendes:

- Laufe über alle Elemente in der Listbox
- Prüfe bei jedem Element, ob es dem Eingabetext entspricht.
- Falls nicht: Füge den neuen Text in die Liste ein

Du siehst hier klar den Denkfehler: Du darfst nicht schon einfügen, wenn nur der erste Vergleich ergeben hat, dass das vorhandene Element an der Stelle ungleich dem Eingabetext ist, sondern erst wenn alle derartigen Vergleiche ohne Ausnahme negativ waren. Das kann man sich also entweder über ein Flag merken (das sieht aber immer etwas unbeholfen aus), oder man fragt einfach die Listbox, ob sie den Eingabetext schonmal gesehen hat (mittels IndexOf)
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat