0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
|
1 | |
Поиск заданного текста в документе Word29.01.2016, 20:45. Показов 6176. Ответов 18
Метки нет (Все метки)
Уважаемые форумчане. Подскажите пожалуйста решение такой проблемы в Делфи:
Пытаюсь создать программу по полуавтоматическому созданию документов в Ворде. Застрял на середине. Сейчас у меня стоит проблема в том, что например, при установке галочки в CheckBox - удалялся один из абзацев текста сформированного из шаблона, если галочки нет - то удаляется соответственно другой абзац из этого-же документа. Как это реализовать. Мне необходимо выйти именно на этот абзац в документе. Пытаюсь за образец поиска дать скопированный абзац - не получается.
0
|
29.01.2016, 20:45 | |
Ответы с готовыми решениями:
18
Поиск текста в Word документе Поиск текста в Word-документе Поиск раскрашенного текста в документе Word Изменение текста в документе Word |
Джоуи
|
|
29.01.2016, 21:22 | 2 |
Дай хотя бы часть программы
Вообще, работа с вордом - сущий геморрой Добавлено через 11 минут Ты сказал, что работаешь с шаблоном. Тогда в шаблоне можешь поставить закладку на нужные абзацы и затем запросто обращаться к ним. Выделяешь в ворде нужный фрагмент текста, заходишь в вставка->закладки->добавить (задав нужное имя) Затем доступ к ним получаешь из своей проги: WordApp.ActiveDocument.Bookmarks.Item('имя_закладки').Range
0
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
||||||
30.01.2016, 22:31 [ТС] | 3 | |||||
Добрый вечер уважаемый Joey.
У меня в шаблоне допустиим есть два абзаца: в одном указано что в устройстве Wi-Fi не установлен, в другом что он есть и его номер и т.д. Я Создаю программу по кирпичикам. Потом вставляю в создаваемую программу. Думал что код ПОИСК СЛОВА ИЛИ ТЕКСТА В ОТКРЫТОМ ДОКУМЕНТЕ
Пытался ставить закладку в начало абзаца и в конец - что-то не получается, а мне нужно сделать функцию и для других абзацев в шаблоне документа
0
|
Джоуи
|
|
31.01.2016, 00:55 | 4 |
А что за ошибку выдает? Или просто ничего не происходит?
Добавлено через 5 минут Может вы вводите в InputBox действительно несуществующий в документе текст? Добавлено через 26 минут Можно скинуть свой документ (или просто образец) и то, что вводите в InputBox. Плюч, обратите внимание, что OLEWord работает только с Widestring, вдруг ваш InputBox возвращает не Wide-строку, а какую-то другую, например, ANSI
0
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
|
31.01.2016, 10:52 [ТС] | 6 |
Добрый день! Я не могу решить вот такой вопрос по поиску нужной части текста:
Дело в том, что я по не знанию вставляю вместо InputBox следующее: text1:= 'В устройстве обнаружен Wi-Fi' (это один абзац текста), второй абзац текста "В устройстве Wi-Fi не обнаружен". Эти два абзаца имеются в шаблоне документа. В зависимости от того стоит отметка в Чекбоксе или нет, программа находит нужный абзац и удаляет его из создаваемого документа. Эти два абзаца не будут вводится из InputBox, они изначально будут прописаны в коде программы.
0
|
Джоуи
|
||||||
31.01.2016, 15:21 | 7 | |||||
Val1966, Открой ворд, выдели первый абзац, зайди в меню "Вставка -> Закладка", введи имя и нажми "Добавить". Например, absaz1, затем то же со вторым абзацем. Сохрони)
Теперь из своей проги:
0
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
|
31.01.2016, 17:55 [ТС] | 8 |
Пишет "Invalid variant operation"
Добавлено через 4 минуты Если вместо "word.ActiveDocument" ставлю "dok" (dok это "Dok:=Word.Documents.Open(direktoriya);" то не ругается но и ничего не делает.
0
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
||||||
31.01.2016, 19:12 [ТС] | 10 | |||||
0
|
Джоуи
|
|||||||||||
31.01.2016, 20:08 | 11 | ||||||||||
Мои глазаааа.....
Не по теме: шучу)) Пока что я вижу только два несхождения: 1. У тебя объявлены две переменные variant с ОДИНАКОВЫМ именем: Word (одна глобальная и одна локальная в Button2Click) 2. В функции POISK ты обращаешься к переменной WAP, хотя в ней ничего нету, потому что в WAP ты никакого Word.Application не создавал. Ты его создал в переменной Word. Понятно, о чем я? И еще. Локальные переменные, насколько я знаю, уничтожаются из памяти после завершения процедуры/функции, поэтому после того, как процедура Button2Click закончится, в переменной Word у тебя больше ничего не останется. Поэтому вот здесь:
P.s. Когда пишешь здесь код, используй теги Delphi (для Lazarus-кода вполне подходит), а то модераторы заругают Добавлено через 14 минут Вот твой измененный код (если не заработает, отпишись):
И почему у тебя переменная vr1 нигде не объявлена?
0
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
|
31.01.2016, 20:27 [ТС] | 12 |
В функции поиск я обращаюсь к открытому документу - dok.
Удалил Word:variant; Ничего не изменилось. Прошу прощения не совсем понимаю , что значит теги Delphi??? Добавлено через 6 минут Ничего не изменилось Добавлено через 18 секунд Нет ничего не изменилось
0
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
|
02.02.2016, 11:18 [ТС] | 15 |
Joey. К сожалению присланный Вами код не сработал
0
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
02.02.2016, 12:22 | 16 |
Val1966, удаление закладки не приведёт к удалению связанного с ней диапазона (и соответствующего текста). Надо удалить или очистить диапазон закладки - тогда удалится соответствующий текст.
--- Пример обработки документа MS Word с использованием закладок: Как записать данные в файл MS Word
1
|
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 11
|
||||||
02.02.2016, 15:00 [ТС] | 17 | |||||
Большое спасибо за помощь всем. Сделал так:
0
|
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
||||||
03.02.2016, 11:18 | 19 | |||||
Val1966, а почему "dok", а не "doc"? И желательно переменные, предназначенные для OLE взаимодействия, объявлять с типом OleVariant. Это гарантирует, что при OLE взаимодействии будут использованы только те типы, которые соответствуют спецификации COM.
Предлагаю сделать так:
0
|
03.02.2016, 11:18 | |
03.02.2016, 11:18 | |
Помогаю со студенческими работами здесь
19
Выделение всего текста в Word документе Проблема замены текста в документе Word Удаление совпадений текста в документе MS Word Word Поиск таблицы в документе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |