:: Visual Foxpro, Foxpro for DOS
Поиск в WinWord
FoxProg
Автор

Сообщений: 150
Дата регистрации: 27.11.2012
Добрый день!
Постала задача найти строку в документе Word.
Конкретнее - перебрать все doc-файлы из определенной папки и выдать список тех, у которых искомая строка имеется.
Как запрограммировать поиск строки в документе я знаю - передрал из макроса. Но мне нужно немного не это. Нужно, чтобы Word вернул в программу результат поиска как "Да" или "Нет". Или же номер позиции или строки или еще чего-то, что отлично от 0, если нашлось или 0, если не нашлось.
Ratings: 0 negative/0 positive
Re: Поиск в WinWord
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
В Word поиск текста ведется с помощью объекта Find, результат поиска находится в свойстве Found этого объекта после выполнения метода Execute.
Ratings: 0 negative/0 positive
Re: Поиск в WinWord
akvvohinc

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
FoxProg
Но мне нужно немного не это. Нужно, чтобы Word вернул в программу результат поиска как "Да" или "Нет"

Без объяснения задача кажется бессмысленной.

Но мне непонятно главное - что вы имеете в виду под словами "чтобы Word вернул"?
Метод Find.Execute возвращает Фоксу логическое значение и это уже не исправить. Но предположим, что некий vba-макрос вернул Фоксу то, что вы желаете.
Кому от этого стало легче и почему?

Почему нельзя в самом Фоксе подменить True на "Да":
m.ret = IIF(<Вызов Find.Execute()>,'Да','Нет')
Ratings: 0 negative/0 positive
Re: Поиск в WinWord
Перминов Игорь

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
С "Да" и "Нет" понятно, но мне кажется ТС желает нечто другое.
Перебирая файлы, если искомая строка найдена, то можно путь к файлу и имя записывать в курсор, затем все это показать
с возможностью выбора и показывать содержимое с результатом того-же поиска.
Можно добавить настройку: показывать найденные файлы, их кол-во, если таковых будет слишком много и т.д.


------------------
Без коментариев..
Ratings: 0 negative/0 positive
Re: Поиск в WinWord
akvvohinc

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
Перминов Игорь
мне кажется ТС желает нечто другое.
Перебирая файлы, если искомая строка найдена, то можно путь к файлу и имя записывать в курсор, затем все это показать
с возможностью выбора и показывать содержимое с результатом того-же поиска.

А разве для этого требуется все то, что ТС хочет получить от Ворда?
Найдена ли искомая строка, покажет значение, возвращаемое методом Find.Execute().
А зачем еще эти да/нет, ноль/не ноль?



Исправлено 1 раз(а). Последнее : akvvohinc, 21.02.17 05:48
Ratings: 0 negative/0 positive
Re: Поиск в WinWord
FoxProg
Автор

Сообщений: 150
Дата регистрации: 27.11.2012
Спасибо за подсказки!
Не думал, что Selection.Find.Execute может что-то вернуть. Сейчас буду это реализовывать.
Под да/нет или ноль/неноль я имел в виду получить какой-то признак, что нашлось или не нашлось. Ну, забыл про .T. или .F. когда писал.
Под "чтобы Word вернул" я имел в виду - чтобы Fox узнал, нашлась ли в ворде искомая строка или нет.
Задача банально простая - перебрать все doc/docx-файлы в определенной папке и записать в курсор имена файлов, в которых нашлась искомая строка. Все!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 17 (Гостей: 17)

© 2000-2024 Fox Club 
Яндекс.Метрика