![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Genius3d |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.6.2007 Репутация: нет Всего: нет |
Господин Albinos
Перекопал уже тонну сайтов и информации. У меня к вам вопрос. Какие есть варианты поиска текста в ворде, при том чтобы можно было выцепить номер страницы? вот вариант 1, как я делал: s:= WordDocument.Range.Text; Далее уже бегал по этому тексту, НО. Номер страницы там не фигурирует, поскольку колонтитутол является обособленным и непростым объектом Word, который не попадает под действие функции Range Появился второй вариант: Count:=WordDocument1.DefaultInterface.Sections.Count; i:=1; ... s:=WordDocument1.DefaultInterface.Sections.Item(i).Range.Text; Ну и далее уже бегаем по s и там ищем, потом перескакиваем на следующий раздел и так далее я подумал что потом как найдем текст можно попробовать выцепить номер страницы, но все оказалось не так просто. Для одного раздела у нас могут быть несколько колонтитулов. Причем текст раздела находится отдельно от колонтитулов (в которых находится номер страницы), поскольку мы обращаемся к колонтитулу следующим образом: s:=WordDocument1.DefaultInterface.Sections.Item(i).Footers.Item(k).Range.Text где k идет от 1 до WordDocument1.DefaultInterface.Sections.Item(i).Footers.Count Зачем мне нужен номер страницы? А вот зачем: var What, Which, Name : OleVariant; .... What:=wdGoToPage; Which:=wdGoToNext; Name:='2'; WordApplication1.Selection.GoTo_(What, Which, EmptyParam, Name); чтобы при открытии файла у меня курсор указывал на нужное место. Конечно можно например найти текст, а потом закрасить его другим текстом, как реализовано в многих поисковиках. Нашел как это делать. Никакой макрос писать не надо, как говорил Hunter если кому надо WordDocument.Range(a,b).Font. Color:= clRed; ну или какой другой. Потом сохраняем файл, но это не выход потому что, если много раз искать то патом весь файл станет желтым).. или красным))... Вообщем задача состоит в следующем: Есть куча файлов Doc нужно среди них найти те файлы в которых встречается такое - то слово, выдать кусок текста где оно встречается и открыть файл если пользователь захочет на том месте где это слово найдено. Все сделал, кроме последнего. Из последнего условия функцию поиска переписывал наверное раз 5, теперь у меня есть несколько совершенно различных алгоритмов))...но ниодин неможет открыть файл на том месте где встретилось слово. Собственно поэтому я остановился на номере страницы. Потому что он нужен для перехода на нужную страницу. |
|||
|
||||
| Genius3d |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.6.2007 Репутация: нет Всего: нет |
Причем тут Дельфи для новичков када у меня работа с OLE.....))))Модератор просто жжет)))
|
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 1 Всего: 78 |
Потому что это вопрос новичка в OLE Это сообщение отредактировал(а) Guedda - 16.6.2007, 13:14 -------------------- Ll 2 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |