Wenn ich es richtig verstanden habe, suchst Du in der Liste einen einmaligen und daher eindeutigen String.
Wieso benutzt Du nicht
.find oder
.IndexOf?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Liste : TStringList;
Index : Integer;
bGefunden : Boolean;
begin
Liste := TStringList.Create;
try
if OpenDialog1.Execute
then begin
Liste.LoadFromFile(OpenDialog1.FileName);
end;
// Findet den Eintrag nur mit dem Trennzeichen
Label1.Caption := 'Der Suchstring ist in der Zeile: ' + IntToStr(Liste.IndexOf(Edit1.Text));
// Findet den Eintrag nur mit dem Trennzeichen
bGefunden := Liste.Find(edit1.text,Index);
if bGefunden
then Label2.Caption := 'Der Suchstring ist in der Zeile: ' + IntToStr(Index)
else Label2.Caption := 'Nicht gefunden';
// Meldet das erste gefundene Resultat
// Findet auch Einträge, wenn das Trennzeichen nicht vorkommt
// -> auch Teilstringe werden gefunden ('ab' -> 'abc,')
// Allerdings musst Du hier mit einer Schleife arbeiten um sämtliche Einträge zu finden
Liste.Find(edit1.text,Index);
Label3.Caption := 'Der Suchstring ist in der Zeile: ' + IntToStr(Index);
finally
Liste.Free;
end;
end;