Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос знатокам 
:(
    Опции темы
Genius3d
Дата 15.6.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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, теперь у меня есть несколько совершенно различных алгоритмов))...но ниодин неможет открыть файл на том месте где встретилось слово. 

Собственно поэтому я остановился на номере страницы. Потому что он нужен для перехода на нужную страницу.




PM MAIL   Вверх
Genius3d
Дата 16.6.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.6.2007

Репутация: нет
Всего: нет



Причем тут Дельфи для новичков када у меня работа с OLE.....))))Модератор просто жжет)))
PM MAIL   Вверх
Guedda
Дата 16.6.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 1
Всего: 78



Цитата(Genius3d @  16.6.2007,  12:38 Найти цитируемый пост)
ричем тут Дельфи для новичков када у меня работа с OLE

Потому что это вопрос новичка в OLE  smile


Это сообщение отредактировал(а) Guedda - 16.6.2007, 13:14


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Snowy
Дата 16.6.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484




M
Snowy
Просьба ознакомиться с правилами форума. 
Хотя бы с первым пунктом!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.