Stringlist.IndexOf

Verweis: Stringlisten Stringlist.Find
Uses: Classes
Eingabe: Suchtext(string)Index1(Integer)
Ausgabe: fundort(integer)
Funktion: Sucht in einer Stringlist nach einer Zeile die mit dem vogegebenen Text übereinstimmt und gibt die Position der gefunden Zeile zurück.

Beispiel 1

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und TMemo auf die Form. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
const
  Farben: array[0..4] of string =
    ('rot', 'grün', 'blau', 'gelb', 'weiß');
var
  Liste: TStringList; //Verknüpfe Variable mit liste
  Index: integer; //Wo gefunden
begin
  Liste := TStringList.Create; // Erstelle eine Liste
  // Laut Anleitung soll der Befehl
  // Find nur in sortierten listen angewand werden
  liste.Sorted := False;
  // Mit AddStrings ist es Möglich
  // ein definiertes Array hinzu zufügen.
  liste.AddStrings(Farben);
  memo1.Lines := liste;
  //Wenn du den Text findest dann
  index := liste.IndexOf('grün');
  if index > -1 then
    ShowMessage('Ich haben den Text an der ' +
      IntToStr(Index) + '. Position gefunden.')
  else
    ShowMessage('Ich habe keinen passenden Text gefunden.');
  Liste.Free;
end;

Die Methode “Stringlist.IndexOf” sucht in einer Liste nach einer Zeile die mit der vorgegeben Zeile übereinstimmt. ISt dies der Fall, dann steht in dem Rückgabewert (dieser heißt in dem Beispiel “index”) die Zeilennummer an dem der Text gefunden worden ist. Wurde der gesuchte Text nicht gefunden so wird der Fundort mit -1 angegeben. Dies können wir in einer Abfrage verwenden und mit dem If-Befehl weitere Schritte einleiten. Wie sich der Befehl “Stringlist.IndexOf” und auch der Befehl “Stringlist.Find” bei der Groß- und Kleinschreibung verhält ist von der Eigenschaft Stringlist.CaseSensitive abhängig.