Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
2 / 2 / 1
Регистрация: 11.01.2011
Сообщений: 39

Поиск и замена подстроки в большой строке

11.01.2011, 11:34. Показов 3419. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Пытаюсь реализовать поиск и замену тега " </td>" на " </td> nbsp; ". Использую компонент ReplaceDialog. Получается оооочень медленно (минуты 3). В тексте происходит около 50000 замен. Notepad++ справляется за секунд тридцать )) Как можно ускорить этот процесс? Мой код такой:
Delphi
1
2
3
4
5
6
7
8
Cache:=IdHTTP1.Get(edit1.Text);
try
with ReplaceDialog1 do
begin
ReplaceDialog1.FindText := '</td>';
ReplaceDialog1.ReplaceText :='</td>&nbsp;';
Cache := StringReplace(Cache, FindText, ReplaceText, [rfReplaceAll]);
end;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.01.2011, 11:34
Ответы с готовыми решениями:

Поиск и замена подстроки в определённой строке
Стоит задача такая. Есть текст &lt;p&gt;Во всех остальных случаях вы можете рассчитывать на получение кредита по средней или даже самой...

Поиск подстроки в строке и замена её на другую строку
Подскажите пожалуйста как мне поправить ошибку? Написал такую функцию. Всё работает правильно (т.е. он правильно находит подстроку,...

Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку
Выполнить поиск подстроки внутри данной строки,замену найденной подстроки на другую строку Пример Исходная строка: aaaabbbaaa ...

2
 Аватар для deathNC
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
11.01.2011, 11:42
Ну, может, на встроенном ассемблере стоит попробовать написать алгоритм... А вообще есть функция одна, которая находит указанную строчку, и возвращает тебе индекс первого символа... не помню, как она называется...
0
2 / 2 / 1
Регистрация: 11.01.2011
Сообщений: 39
11.01.2011, 11:45  [ТС]
Извиняюсь, уже понял как и работает )) Тему можно закрывать:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function MyStringReplace(_Value,_Old,_New:string):string;
 
var
 
  i,l,lold,lnew:integer;
 
begin
 
  l:=length(_Value);
 
  lold:=length(_Old);
 
  lnew:=length(_New);
 
  Result:='';
 
  i:=0;
 
  repeat
 
   Inc(i);
 
   begin
 
    if copy(_Value,i,lold)=_Old then
 
     begin
 
      Result:=Result+_New;
 
      i:=i+lold-1;
 
     end                       else
 
     Result:=Result+_Value[i];
 
   end;
 
  until i=l;
 
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2011, 11:45
Помогаю со студенческими работами здесь

Поиск подстроки в строке и вывод подстроки
Удалите пожалуйста, разобрался

Замена подстроки в строке с неизвестными символами в строке
Пример: есть строка: s=&quot;Делаешь, уешь, гниешь, ешь&quot; Нужно заменить окончание ешь на ю то-есть: Делаю, ую, гнию. но просто...

Замена подстроки в строке
здесь у меня такая проблема возникла мне нужно заменить все &quot;were&quot; на &quot;are&quot; но &quot;are&quot; меньше на 1 символ я незнаю как его можно заменить...

Замена подстроки в строке
В строке нужно заменить подстроку aaa на 3(a). Помогите написать код без использования string.

Замена подстроки в строке
Приветствую! Имеется код, который работает set str1=У змеи кожа как у кожа крокодила echo.%str1% set str1=%str1:кожа =нечто %...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru