Функция Pos и PosEx очень шустрые функции, незнаю какой они алгоритм для поиска используют, но скорости на обработку 500 элементов хватит с избытком. Я думаю, там и пол секунды небудет.
Или я чего-то непонимаю, или вы какими-то заморочеными путями идете.
У вас есть элемент массива, он же - строка. Найти в этой строке все вхождения какой-либо другой подстроки, элементарно. Например есть строка телефонного трафика вида:
Код:
S := '01.01.2009 16:00:00 Вх. 9353345668 4567789032 26';
и есть массив с предопределенными номерами
Код:
Const
Tel:Array[1..2] of string = ('4567789032','4567789134');
надо найти все вхождения из Tel в S:
Код:
for i := 1 to 2
do begin
P := 1;
while P>0
do begin
P := PosEx(Tel[i],S,P);
if P > 0 then ShowMessage(Tel[i]);
end;
end;