Редактирование файла Word'а через VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Редактирование файла Word'а через VB

Сообщение Pokesoft » 09.06.2004 (Ср) 14:20

Уважаемые коллеги!
Не подскажете ли, каким образом можно реализовать следующую задачу:
имеется файл *.doc, где имеется текст, а также слова #Покупатель#, #Поставщик# и т.д.
Необходимо данный файл открыть, организовать поиск вышеупомянутых ключевых слов, и заменить их на заданные в VB-программе текстовые данные.
А также, если кто знает, скажите, как всё это вывести на печать.
Проект некоммерческий, но очень важный. Буду доволен даже подсказкой.
Заранее спасибо!

ЗЫ: Если возможно сделать это без использования OLE или API, было бы вообще замечательно!

>HPLC<
Hacker_Pokesoft

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 09.06.2004 (Ср) 15:02

Проще всего обойтись вообще без VB, в Word есть механизм "Слияние", который предназначен именно для этих целей.
Если это не устраивает, то можно написать небольшую программку (хоть в VB, хоть в VBA), которая будет искать указанный текст или (если это не просто текст, а закладки) определенные закладки и заменять на требуемый.
Но это все требует наличия установленного Word на машине. А если ты хочешь обрабатывать DOC-файл без внешних библиотек, то учти, что 1) этот формат закрытый и 2) заколебаешься.
Lasciate ogni speranza, voi ch'entrate.

Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Сообщение Pokesoft » 10.06.2004 (Чт) 9:23

alibek писал(а):Если это не устраивает, то можно написать небольшую программку (хоть в VB, хоть в VBA), которая будет искать указанный текст или (если это не просто текст, а закладки) определенные закладки и заменять на требуемый.

Дело в том, что действие должна выполнять сама программа, скомпиллированная на VB. Один мой знакомый делал нечто подобное с использованием Delphi; на VB же я пока не могу понять, как это реализовать, а никаких примеров в Инете по этому вопросу не нашёл (может плохо искал...).
В общем, нужен хелп именно _КАК_ написать такую небольшую программку. Достаточно просто ссылки на ту или иную функцию, которую надо реализовать, дальше разберусь (недеюсь =))
Спасибо!

>HPLC<
Hacker_Pokesoft

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.06.2004 (Чт) 9:39

Можно сохранить в формате rtf с расширением doc. Тогда можно рыть прямо в тексте.
Но, всё-таки, почему нельзя заставить ворд сделать это? Никто и не узнает, что создан невидимый инстанс...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Сообщение Pokesoft » 10.06.2004 (Чт) 11:42

1) Как соxранить??? Это и есть одна из целей данного вопроса...
2) А каким образом я его заставлю, если я работаю не с VBA, а с VB, причём без OLE?

>HPLC<
Hacker_Pokesoft

Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Сообщение Pokesoft » 10.06.2004 (Чт) 17:05

Может быть организовать доступ к Word-файлу через "Binary Input"???

>HPLC<
Hacker_Pokesoft

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.06.2004 (Пт) 7:00

Как это тебе удалось отключить OLE от VB? Это очень интересная технология :)
Работать с вордом из VB ничуть не менее приятно.
А прямым доступом - это уж ни фига.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Сообщение Pokesoft » 11.06.2004 (Пт) 10:16

GSerg писал(а):Как это тебе удалось отключить OLE от VB? Это очень интересная технология :)

Я имел ввиду, что не использую объекты "OLE" в написании своей проги... Насчёт Нифига - это я уже понял, вчера пробовал =)

>HPLC<
Hacker_Pokesoft

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.06.2004 (Пт) 11:32

Тебе и не нужно использовать объекты OLE при написании своей проги.

dim w as object
set w=createobject("word.application")
w.open(файл).find ну и как там дальше...
...
w.quit
set w=nothing
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Сообщение Pokesoft » 11.06.2004 (Пт) 16:21

Ну, что-то уже начало появляться, в смысле Ворд вроде запускаецца, но вот теперь другая проблема - форма сразу же подвисает, а при попытке переключицца обратно на VB выдаёцца сообщение, мол, приложение занято и предлагает "Перейти на...", больше ничего уже не происходит...

>HPLC<
Hacker_Pokesoft

Pokesoft
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 03.02.2003 (Пн) 13:02
Откуда: Russia

Сообщение Pokesoft » 11.06.2004 (Пт) 16:25

-------> w.open ("C:\order.doc") <----------
Пишет, объект не поддерживает свойство или метод :(

>HPLC<
Hacker_Pokesoft

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.06.2004 (Сб) 9:14

Ну разбирайся с объектной моделью-то. Я же наугад писал. Может, w.documents.open... Смотри, в общем, в VBA, а пиши в VB :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 13

    TopList