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.