Можно так:
Код:
procedure FindStringInFile(const FileName, searchstring: string);
var
fs: TFileStream;
S: string;
begin
fs := TFileStream.Create(FileName, fmOpenread or fmShareDenyNone);
try
SetLength(S, fs.Size);
fs.ReadBuffer(S[1], fs.Size);
finally
fs.Free;
end;
if Pos(searchstring,S) > 0 then ShowMessage('Есть!') else ShowMessage('Нет...');
end;
PS: Работает быстро, проверял: поиск строки в файле 23 Мб занял < 1 сек