Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Извлечение данных из формата DOC

Автор: Scorp_Freeman 13.04.2007 16:11

Как извлечь текст из вордовских текстов бай за байтом? Вернее какова их структура, где в них начинается блок данных ?
Файлы я открываю через потоки TFileStream.

Как програмно создать файл Ворда *.doc ?

Автор: hiv 13.04.2007 16:20

Цитата(Scorp_Freeman @ 13.04.2007 13:11) *

Как извлечь текст из вордовских текстов бай за байтом? Вернее какова их структура, где в них начинается блок данных ?
Файлы я открываю через потоки TFileStream.

Как програмно создать файл Ворда *.doc ?

Никак. А если подробнее - методом научного тыка smile.gif
Все дело в том, что формат этих файлов есть непубликуемая тайна microsoft.
Единственный официальный способ решения проблемы - использование OLE или COM - автоматизации.
Удачи smile.gif
ЗЫ: Можно конечно и ящик пива поставить разработчикам OpenOffice, они отчасти умеют писать в этом формате, и то не все sad.gif

Автор: Scorp_Freeman 13.04.2007 16:27

Цитата(hiv @ 13.04.2007 12:20) *

Никак. А если подробнее - методом научного тыка smile.gif


ндаа, обидно. Ну что ж, тогда придется копировать побайтно из одного в другой и целиком nea.gif
ну ничего, прорвемся blum.gif

Автор: S@sH@ Che@tEr 24.06.2007 21:50

А у меня немного другой вопрос, но в теме - я на форуме пошарился, но все же не нашел.

Как вывести из моей проги данные в шаблонный *.doc файл. Шаблонный не всмысле шаблон, а просто в набраный документ подставить числа.

Автор: volvo 24.06.2007 22:30

Вариантов, на самом деле, море...

Ну, самый простой - это, скажем, вместо чисел записывать какую-нибудь комбинацию символов, которая НЕ встречается больше в файле. Например, вместо первого числа - написать ([%num_01%]), вместо второго - ([%num_02%]), а потом просто открыть твой "шаблонный" файл, и заменить (через Replace, пример есть в Drkb) все подобные комбинации на нужные числа...

Автор: hiv 25.06.2007 13:16

Цитата(volvo @ 24.06.2007 19:30) *
Ну, самый простой - это, скажем, вместо чисел записывать какую-нибудь комбинацию символов...
Volvo, я не думаю, что это получится, т.к. разговор шел о формате Microsoft Word документа *.doc, а не текстовый *.txt.

Автор: volvo 25.06.2007 18:14

Цитата
я не думаю, что это получится
Да что с вами происходит-то? Тут "я не думаю", там вообще однозначно утверждают, что простейшее действие невозможно... Бури что-ли магнитные над Россией? Ты пробовал? Попробуй... Где ты видишь проблему? Что, Replace не сработает в MSWord? Или Find? Или SaveAs? Что в DOC-формате НЕ сработает, а в TXT да сработает по-твоему?

Или в DOC-файле не может храниться комбинация определенных символов? Тогда, извини, на кой ... он нужен, формат-то такой?

Автор: hiv 25.06.2007 18:20

Цитата(volvo @ 25.06.2007 15:14) *
Что в DOC-формате НЕ сработает, а в TXT да сработает по-твоему?
Работа с этим форматом без установки ПО Microsoft Word!

Автор: Malice 25.06.2007 20:04

В копилку:
http://uinc.ru/articles/39/
Устарело немного, но полезно.

Автор: S@sH@ Che@tEr 27.06.2007 15:41

(через Replace, пример есть в Drkb)

Можно про это подробней smile.gif

Автор: hiv 27.06.2007 16:41

Цитата(S@sH@ Che@tEr @ 27.06.2007 12:41) *
Можно про это подробней smile.gif
Качай DRKB и ищи статью "Работа с MS Word " - она и есть полный набор примеров всего что можно делать с программой WORD через COM-сервис.
Еще раз повторю - это работает только при установленном ПО Microsoft Word!


Добавлено через 12 мин.
Сразу не заметил smile.gif
Цитата(volvo @ 25.06.2007 15:14) *
Тогда, извини, на кой ... он нужен, формат-то такой?
Вот именно!!! Кому он нужен? - только Microsoft, ему за это деньги отваливают. Да простят меня модераторы за флуд...