| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Заменить слово в RTF документе |
| Автор: dma 1.12.2006, 03:24 |
| Господа, помогите пожалуйста, ума не приложу как решить следующую проблему: Есть текст в файле RTF формата. Необходимо пройтись по тексту, найти данное слово (к примеру ЛАМПА) и заменить его на другое данное слово (к примеру ЛЮСТРА), при этом не нарушая форматирования текста. То есть, к примеру, если заменяемое (ЛАМПА) слово было шрифта 14 и жирное, то чтобы и заменённое слово(ЛЮСТРА) имело такие же параметры. Заранее премного благодарен. |
| Автор: Poseidon 1.12.2006, 04:25 |
| Хех. По моему с форматироанием не осуществимо. Потому как есть будет ЛАМПА, то на какую "ЛЮСТРУ" менять? Добавлено @ 04:28 А без форматирования обычный StringReplace... |
| Автор: gambit 1.12.2006, 11:13 |
| Есть хорошая книга "Программирование документов и приложений MS OFFICE в DELPHI" Тамопсано все что можно сделать с word и excel. Если надо могу тебе написать код который тебе надо. Код напишу ближе к вечеру. |
| Автор: gambit 1.12.2006, 11:36 | ||
|
| Автор: gambit 1.12.2006, 19:22 |
| Snowy, ты заменяеш слово в RichEdit а мой код позволяет редактировать ничего никуда не копирую. Кроме того не в обиду сказано но word есть у 99% людей. |
| Автор: Snowy 1.12.2006, 20:13 |
| Что и требуется из постановки вопроса. Использовать для этого тяжеловесный платный сторонний пакет? Ты б ещё 2+2 в ехеле считал бы Такие решения у меня вызывают как минимум недоумение. Зачем??! Да ты оптимист Для России также верно, как и то, что IE пользуются 99% посетителей этого сайта А для западного мира данный процент ещё меньше. Пиратство - далеко не тотальное явление. Процент машин с M$ офисом постоянно падает. Как и процент пользователей IE. Пройдёт время и данный процент будет меньше половины. И что делать тогда программе на машине, где нет офиса? Кричать, извините, я не могу сделать элементарной вещи - купите офис? Да я и без такой программы спокойно в ОО всё сконверчу |
| Автор: gambit 1.12.2006, 20:22 | ||||||||
Snowy,
А что плохо чтоли
А теперь вопрос
Нет ничего про загрузку в прогу и так далее. Ну в общем это вопрс довольо спорный |
| Автор: Poseidon 1.12.2006, 20:26 |
| Вопрос этот не спорный. Снежок прав. Совершенно не у всех установлен Ворд (не говоря уже обо всем Офисе). И пользователю не очень приятно будет увидеть, что твоя программа, каторая к Ворду ни каким боком, из-за того, что у тебя не уста новлен Word, не захочет работать. |
| Автор: Snowy 1.12.2006, 20:34 | ||
| Абалдеть. А что, есть способы модифицировать файл на основе его содержимого, не загружая его?
|
| Автор: gambit 1.12.2006, 20:48 | ||
Snowy, Да!!! Мой способ.
|
| Автор: dma 6.3.2007, 20:15 |
| Второй вариант идеален, когда не требуется заменить слово в таблице. Если же заменяемое слово находится в таблице, то всё форматирование сбивается А вот вариант с вордом подходит для таблицы, но можно ли теперь сделать так, чтобы заменялись не все слова в документе, а к примеру пять первых? Буду очень признателен за помощь. |
| Автор: gambit 6.3.2007, 21:39 |
| Я уже точно не помню, но помоему мой вариант находил первое слово удовлетворяющие запросу и заменяла его. Так что просто прогнать в цикле. |
| Автор: dma 17.3.2007, 14:53 | ||
| Нет, твой вариант как раз заменял всё одним махом. То есть был установлен параметр Replase Allю Методом научного тыка я выяснил что этот параметр задаётся как раз в той строчке, которая прокомментирована "фигня без которой неработает". Так вот если установить этот параметр в 1, то будет заменяться ОДНО слово. Поэтому я сделал так:
Но заменилось по прежнему одно слово. Как показал пошаговый проход после первого выполнения цикла заменённое слово остаётся выделенным, а значит, наверное надо это выделение снять, чтобы слова могли искаться дальше. Так вот вопрос - как сбросить выделение? А ещё лучше если кто-нибудь ткнёт носом где можно про это всё почитать Премного благодарен. |
| Автор: dma 17.3.2007, 16:49 | ||
| Еле нашёл в интернете эту книжку Вобщем проблема решена:
Всем кто помог - большое спасибо! |