Home » Tipps & Tricks » Komponenten » TStrings » Prüfen, ob ein Eintrag in TStrings schon vorhanden ist

Prüfen, ob ein Eintrag in TStrings schon vorhanden ist

Folgende Funktion prüft, ob ein String in einer von TStrings abgeleiteten Instanz (wie z.B. TStringlist) vorkommt.

function FindDoublette(const AStrings: TStrings; const AText: String;
  CaseFlag: Boolean=False): Integer;
var
  I, C: Integer;
begin
  Result := AStrings.IndexOf(AText);

  if CaseFlag then
  begin
    C := Result;
    Result:=-1;
    for I:=C to AStrings.Count-1 do
      if AText=AStrings[I] then
      begin
        Result:=I;
        Break;
      end;
  end;
end;

Dem ersten Parameter muss die Stringliste übergeben werden. Dies können eine TStringlist oder auch die Items einer Listbox sein. Dem zweiten Parameter wird der zu vergleichende Text übergeben. Soll auf Groß/Kleinschreibung geachtet werden, kann der dritte, optionale Parameter auf True gesetzt werden.Die Funktion gibt die Position, beginnend bei 0, des ersten Vorkommens zurück. Wurde keine Entsprechung gefunden hat Result den Wert -1.Die Klasse TStringList enthält zusätzlich die Eigenschaft Duplicates. Sie legt fest, wie sich die Liste verhalten soll, falls eine Dublette hinzugefügt wird. Sie greift nur, wenn die Liste sortiert ist (Eigenschaft Sorted:=True). Weitere Informationen finden Sie in der Onlinehilfe unter dem Stichwort „TStringList,Duplicates“.