Ein TFileStream-Objekt ist schon richtig. Als Liste würde ich eine TStringlist verwenden.
Wenn Du viel Zeit hast, dann reicht ein generisches Suchen, wobei ich zunächst den jeweils 1. Buchstaben mit den Schlüsselwörtern der Stringliste vergleichen würde, und erst wenn da ein Treffer ist, mal genauer hinschauen.
Wenn Du Dir etwas komplexere Algorithmen zutraust, dann schau mal nach KMP oder ähnlichen Verfahren, die solch 'Multi-Wort' Suche sehr effizient implementieren.
Wenn Du sehr lange Schüsselwörter hast, lohnt ein Blick auf Horspool, Boyer-Moore oder 'Quicksearch'.
Genaueres findest Du hier:
http://www-igm.univ-mlv.fr/~lecroq/string/index.html