Verweis: | Stringlisten Stringlist.IndexOf |
Uses: | Classes |
Eingabe: | Suchtext(string)Index1(Integer) |
Ausgabe: | gefunden?(boolean),fundort(integer) |
Funktion: | Sucht in einer sortierten Stringlist nach einer Zeile und gibt als Ergebnis ja oder nein sowie den Fundort 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 := True;
// Mit AddString ist es Möglich
// ein definiertes Array hinzu zufügen.
liste.AddStrings(Farben);
memo1.Lines := liste;
//Wenn du den Text findest dann
if liste.Find('weiß', Index) 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.Find“ sucht in einer sortierten Liste nach dem unter dem Befehl Find angegeben Zeile. Dabei muss die gesamte Zeile der gesuchten Zeile entsprechen. Wenn wir also in Unserem Beispiel ‚weiß‘ durch ‚weiß und rosa‘ austauschen dann kann der Befehl Find die Zeile nicht finden. Es ist wichtig, dass der Befehl „Find“ nur auf sortierte listen angewendet wird. Sollten wir uns nicht daran halten, werden wir mit dieser Meldung belohnt. 🙂

Wenn sie in einer unsortierten Liste suchen wollen,dann sollten sie sich den Befehl „IndexOf“ anschauen.