Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > RegExpr


Автор: Zorak 11.8.2011, 17:16
Здраствуйте. Проблема состоит в следующем: Очень долго работают регулярки(.. Смотрим http://forum.vingrad.ru/forum/topic-335607.html тему, в особенности последний пост.

Кратко: При обработке файлов юзал Memo, но обработка происходила слишком долго... Поменял Мемо на стринги, процес ускорился, но регулярки стали медленными. В мемо регулярки глотались меньше чем за секунду на файл, сейчас на файл может уходить от 5с до 3 минут(.. В чем может быть причина?

Вот код:
Код

      for k:=0 to str2.Count-1 do // в str загружен файлик.txt
      begin
        r.Expression:=str2.Strings[k];
        str.Text:=r.Replace(str.Text,'',true);
        Gauge4.Progress := Round(100*k/str2.Count);
        Application.ProcessMessages;
      end; // for k :=
      r.Free;


содержимое str2:
Код

<head[^>]*>[^<]*<[/]head>
<script[^>]*>[^<]*<[/]script>
<!--(.*?)-->
<![^>]+>
<[^>]+>

как можно изменить это либо заменить чемто другим, где можно будет следить за выполнением процесса (количество пройденных строк или еще чтото в этом роде), либо както проврить не зависла ли программа при выполнении этого чуда нанопрограммирования. В приципе вопрос времени это такое.. У меня есть просто страхи что найдет файлик, на котором просто все зависнет.

Автор: Zorak 11.8.2011, 22:28
Все. Вопрос решен. Тему в принци пе можно удалить. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)