DOC2TXT без Word.Application (в поиске уже смотрел)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

DOC2TXT без Word.Application (в поиске уже смотрел)

Сообщение SSecurity » 16.07.2007 (Пн) 14:21

Всем привет!

Вопрос бонален - нужно открыть 20000 файлов DOC переделать и сохранить в HTML вопрос переделки для меня не актуален - поскольку она уже функционирует.

Актуальным для меня является вопрос бинарного чтения содержания DOC файла ... естественно без участия Word.
Почему-то мне кажется что так будет несколько быстрее чем файл открывать через Word.Application (150 файлов ~ 30 МБ ~ 15 минут при 1 Гц и ОЗУ в 256 МБ).

Туманные описание формата в сети видел, но оно мне показалось оооочень запутанным, поэтому буду рад любой помощи

С уважением,
жду ответов
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

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

Сообщение alibek » 16.07.2007 (Пн) 14:34

Lasciate ogni speranza, voi ch'entrate.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 14:44

Меня мягко говоря смущает 2 вещи:
1. Хотелось бы потратить 29$ на другие цели
2. Там не контрол к тому же :)

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 16.07.2007 (Пн) 14:45

Doc файл - это COM Storage, значит можно открыть в нем соответсвующую ветку и прочитать текст. Ключевое слово для поиска в гугле - COM Storage

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 14:49

Тогда встречный вопрос
olelib.dll есть у кого?
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 16.07.2007 (Пн) 14:53

Изображение

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 14:59

Всем большое спасибо .... пойду ковыряться:)

;)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.07.2007 (Пн) 15:44

jangle писал(а):Doc файл - это COM Storage, значит можно открыть в нем соответсвующую ветку и прочитать текст. Ключевое слово для поиска в гугле - COM Storage

Ничерта там не текст лежит.
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 16.07.2007 (Пн) 16:18

tyomitch писал(а):
jangle писал(а):Doc файл - это COM Storage, значит можно открыть в нем соответсвующую ветку и прочитать текст. Ключевое слово для поиска в гугле - COM Storage

Ничерта там не текст лежит.


tyomitch - учи матчасть! А это по твоему что?


Я уже просил тебя не прикладывать к каждому сообщению скрин на 100К в формате png, который автоматически открывается в картинку. Замечание хотишь по всей форме? --GSerg

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 16.07.2007 (Пн) 19:57

Я уже просил тебя не прикладывать к каждому сообщению срин на 100К в формате png, который автоматически открывается в картинку. Замечание хотишь по всей форме? --GSerg


Вообще-то атач должен открыватся по клику на нем, то что он открывается автоматом, наверное глюк форума

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.07.2007 (Пн) 20:01

запакуй да прикрепи архив...
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 16.07.2007 (Пн) 20:04

tyomitch писал(а):запакуй да прикрепи архив...


Да нафиг надо, ты же наверное видел, что буквы лежата в Storage открытым текстом, правда кирилица в - Unicode.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.07.2007 (Пн) 20:16

Ты же наверное видел, что они там перемежаются мусором, извлечь из которого только один текст нереально, не зная формата.
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 16.07.2007 (Пн) 20:36

tyomitch писал(а):Ты же наверное видел, что они там перемежаются мусором, извлечь из которого только один текст нереально, не зная формата.


Был где-то код, который потрошит DOC файлы, вытаскивает из них все вплоть до VBA макросов. Storage по структуре похож на иерархическую БД, зная названия отдельных стримов можно распарсить его и вытащить текст. Я сам так использовал сторажи, сохранял в них текстовые данные, а потом загружал от туда.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 22:04

я примерную структуру DOC видел ... там документ, макросы и т.п. ....
интересно, а картинки он побитово впихивает или как-то сжимает :)

Юникода много видел ... :(
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 22:17

+ трабла 3 (ink-овые файлы это C или .Net)?
не смог у себя ТЛБ зарегить.

Наверно совсем ЧАЙНИК я :(
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.07.2007 (Вт) 9:32

я примерную структуру DOC видел ... там документ, макросы и т.п. .... интересно, а картинки он побитово впихивает или как-то сжимает


Никак он картинки не сжимает, как есть, так и сохраяет.

не смог у себя ТЛБ зарегить


Подключи ее через Reference к своему проекту, и ее зарегит VB

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2007 (Вт) 11:19

tyomitch - учи матчасть!

...
Вообще-то атач должен открыватся по клику на нем, то что он открывается автоматом, наверное глюк форума


jangle - учи матчасть!

Аттач никому ничего не должен. Поведение аттача зависит от конфигурации расширения файла и группы расширений.

А именно, от настройки данного параметра:
Показывать картинки в почтах
Выберете, или показывать картинки прямо в почте (да) или давать только ссылки на картинки ?

(Фу, блевать от такого перевода хочется :x . Должно быть так: "Вывод изображений |Показывать ли изображение непосредственно в сообщении (да) или выводить ссылку на него" )

Однако, есть возможность установить макс. размер изображения (x*y), которое будет отображаться. Остальные изображения, размер которых привышает эти велечины, будут заменены на ссылки.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.07.2007 (Вт) 11:37

Вот скрин, для тех кто хочет убедится, что текст в стораже хранится в виде байтового массива. Cтрим - WordDocument, смещение &H800. Кирилица хранится в UNICODE

http://rg.foto.radikal.ru/0707/5b/8d8244c1ef61.jpg

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.07.2007 (Вт) 12:38

Да я не спорю, что текст там тоже лежит, в числе прочего.
Я говорю, что ты его оттуда не извлечёшь просто так.
Изображение

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 12:52

насколько я понимаю речь идет о том, что текст - не есть все то что идет после смещения &H800 в примере jangle

Так например если в тексте есть картинки, рисунки, формулы ... это ведь должно отразиться в документе?

tyomitch, а может он прав, тогда все что ам есть - это содержание WordDocument.Content.Text а фоматирование формулы и прочая пакость вставляется потом, как нить потом ... ну как нить так ... :) после загрузкитекста.

В этом случае вытащить текст будет не сложно. если его длину знать и знать откуда читать.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.07.2007 (Вт) 13:17

Нет, он не прав. У меня есть документ, где текст в этом стриме разбит на две части с промежутком в пять килобайт мусора между ними.
Он у меня, кстати, начинается со смещения A00; как предложите угадывать настоящее смещение начала текста?

Пусть посмотрит какой-нибудь реальный документ, а не болванку в одну строчку; может быть, на него снизойдёт озарение.
Изображение

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 13:47

А этот текст я вытащил с док-файла со смещения &H500 ровно в таком виде как он есть ... голая кирилица в чистом виде.

Код: Выделить всё
PRIVATEФОРЕКС-ВЫСОКОПРИБЫЛЬНЫЙ РЫНОКPRIVATEЦель торговлиЦель торговли на любом рынке - купить товар дешевле, а продать дороже. Не составляет исключения и


в другом файле при просмотре под ДОСом отчетливо увидел вот что:
Код: Выделить всё
F O R E X ...

начиная со смещения &H600
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.07.2007 (Вт) 14:01

SSecurity - лови ссылку на "Внутренний формат документов MS WORD" http://www.uinc.ru/articles/39/index.shtml
Статья прямо для тебя :)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.07.2007 (Вт) 14:05

И еще в догонку, http://genrep.nm.ru/xls/xls.htm тоже по форматам данных в оле сторажах

Примеры на С++, http://www.firststeps.ru/mfc/activex/r.php?58

Вобщем если есть желание, разобраться можно.
Последний раз редактировалось jangle 17.07.2007 (Вт) 14:08, всего редактировалось 1 раз.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 14:06

Спасибо, jangle эта статья у меня уже была, но всеравно спасибо. Там кстати в конце есть ссылочка на VBA реализацию.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Ку

Сообщение xenomorph » 08.09.2007 (Сб) 22:53

К сожалению VBA_MD_Example.zip битый линк.
А тема до жети актуальна!

1. Если кто-нить успел качануть файл - приложите пожалуйста!
2. 2SSecurity как прогресс с проблемой?
--
Заранее спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 09.09.2007 (Вс) 3:11

вообщем посоветовался с заказчиком ... расписал красоты проблем ... и он теперь работает с программой через Ворд.Аппликэйшен .... у него машинка нормальная стоит :)))и файлов 60000 штук постепенно обрабатывает :)

Но суть вопроса остается - уже не в практической а в теоретической области.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)


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

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

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

    TopList