Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Delphi
(Модератор:
x77
) > Тема:
Регулярки и замена в .rtf
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Регулярки и замена в .rtf (Прочитано 6830 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Razor
Помогающий
Offline
Пол:
Регулярки и замена в .rtf
«
:
05-08-2009 07:01 »
Ребят, сильно не пинайте. Сам я делфи не знаю, но попросили узнать решение проблемы.
Дано:
шаблон .rtf где нахходится таблица примерно след.вида:
%str% | %name%
%str% | %name%
...
(упрощено, но суть ясна думаю).
Затем в самой делфе-программе есть цикл, который перебирает все строки из БД, кот.нужно вставить в таблицу.
Но если использовать функцию replacestring (вроде такая - замена по регуляркам), то в таблице в .rtf получается одна повторяющася строка.
Может как-то можно сделать чтобы регулярка меняла совпадение только 1 раз а потом был след.проход цикла и регулярка меняла уже 2 строку.
Или как-то по-другому решить задачу...
Прошу прощения за пост вопроса, не зная матчасти. Спасибо заранее.
Записан
x77
Модератор
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
Re: Регулярки и замена в .rtf
«
Ответ #1 :
05-08-2009 14:41 »
ReplaceString работает не по регулярным выражениям. но - работает. если в БД в итоге выдаётся одинаковая строка - то это скорее всего следствие кривости кода. не видя исходников - сложно что-то сказать.
если же необходима замена именно по правилам регекспов, то лучше юзать TRegExpr:
http://regexpstudio.com/RU/TRegExpr/TRegExpr.html
Цитата
Распространяется в исходных текстах, полностью на Object Pascal (совместим с Delphi, C++ Builder, Kylix и FreePascal), не нужны никакие DLL.
Записан
я люблю shelek.ru
Razor
Помогающий
Offline
Пол:
Re: Регулярки и замена в .rtf
«
Ответ #2 :
06-08-2009 15:09 »
Да нет, из БД строки выдаются какраз разные, но получается так, что все строки в .rtf заменены одними данными (самым первым выводом) т.е. stringReplace за один раз сразу все меняет, а хотелось бы чтоб только первые совпадения..вот
Записан
x77
Модератор
Offline
Пол:
меняю стакан шмали на обратный билет с Марса.
Re: Регулярки и замена в .rtf
«
Ответ #3 :
10-08-2009 11:49 »
у StringReplace есть флаг - rfReplaceAll. если он не используется, то меняется только первое вхождение в строку.
Записан
я люблю shelek.ru
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Delphi
(Модератор:
x77
) > Тема:
Регулярки и замена в .rtf
Загружается...