Окончательный вариант процедуры:
#pas
procedure THiAsmClass.doSearch;
var
F: TextFile;
S,t: string;
begin
t:= ReadString(Data, text);
AssignFile(F,ReadString(Data, filename));
Reset(F);
While Eof(F)<> True do
begin
Readln(F, S);
If pos(t,s)<> 0 then _hi_onEvent(onSearch, S);
end;
CloseFile(F);
end;
То же в SQLite выбирает ~ за 10 S