Автор
|
Тема: Word
|
aker13 |
опубликован 11-01-2002 15:44 MSK
kak iz wordovskogo fayla vzyat bukvu ili slovo i vstavit v textbox
|
Creedence Sergey
|
опубликован 16-01-2002 15:52 MSK
Для этого нужно знать составные файлы OLE (чем я и занимаюсь...) Весь текст документа хранится в потоке с именем WordDocument - оттуда его и извлекай... |
aker13
|
опубликован 16-01-2002 16:46 MSK
da ya toje znayu chto eti dela delayutsya tak, mne prosto nujno bilo boleye konkretnoye resheniyeno spasibo za otklik, |
Lamer
|
опубликован 19-01-2002 20:16 MSK
Вот Creedence Sergey привязался с OLE-файлами. Ворд регистрирует в реестре кучу своих классов, с помощью них можно полностью управлять приложением "ворд". Вот пример получения текста документа:Dim wrd As Object Dim text As String Set wrd = CreateObject("Word.Application") wrd.Documents.Open "c:\somedoc.doc" text = wrd.Documents("somedoc.doc").Content.text ' или ' text = wrd.Documents(1).Content.text (не рекомендую) ' или ' text = wrd.ActiveDocument.Content.text wrd.Documents("somedoc.doc").Close False ' или индекс, активдок и т. п. wrd.Quit Set wrd = Nothing 'чтобы не засорять память Теперь text содержит текст документа. Также, из документов можно вытаскивать таблицы (подкласс Table), рисунки, гиперссылки и многое другое. Кстати, через классы из реестра можно работать со многими OLE-файлами.
|
Lamer
|
опубликован 19-01-2002 22:13 MSK
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Creedence Sergey
|
опубликован 20-01-2002 00:17 MSK
1. Но этот пример из разряда "автоматизация OLE" будет работать только, если на компьютере пользователя установлен Word. Это то же самое, что макрос в VBA в ворде, только хранится в отдельном файле. А мое предложение будет работать везде. 2. И с какими же это OLE файлами можно так работать? Можно ли создать так новый зайл, что-то в него записать, создать хранилища, подхранилища, считать... |
AlexR
|
опубликован 20-01-2002 16:17 MSK
to Creedence Sergey: ты только составными OLE-файлами занимаешься? |
Lamer
|
опубликован 20-01-2002 21:48 MSK
1. Я думаю, что если человеку нужна программа для автоматизации работы Word, у него на машине будет стоять Word! А если ему нужно будет просто прочитать документ Word, то он точно поставит Word! 2. Работать можно с OLE-файлами соответствующими некоторому приложению. Но в виндах также есть о объект OLE для работы с OLE-файлами в общем.
|
rivitna
|
опубликован 20-01-2002 22:14 MSK
Я согласен с Creedence Sergey, в определенных моментах нужно стремиться к независимости приложений.Когда я писал на VC программку просмотра исходников макросов в документах Word 6, MS Office 97-2000, тоже страмился к независимости. Прекрасно обошелся без функций OLE. С файлами работаю на бинарном уровне, вытаскивая потоки вручную. В результате программка прекрасно работает на платформе Win32, используя только 5 системных dll-ок: Kernel32.dll, User32.dll, GDI32.dll, ComDlg32.dll, ComCtl32.dll |
alpeugene
|
опубликован 19-02-2002 00:03 MSK
У меня вопрос к Creedence Sergey : Я как раз пытаюсь прочитать текст (и только) из stream-а "WordDocument" Я получил fib.fcMin,fib.fcMax и fib.cbText Но как получить начало и конец текста в stream-e (считанные fib.fcMin,fib.fcMax и fib.cbText мне не помогают,поскольку отсчитывают смещение с начала файла)? И еще вопрос - как из данного stream -а получить русский текст(а не какую-то галиматью)? Помогите!!!! Заранее благодарен ,alpeugene(alpeugene@hotmail.com) |