Что нового

Считывание содержимого Word

magros

Новичок
Сообщения
20
Репутация
1
Доброго!

Возникла проема в связи с недавним началом использования программы прошу помощи

Задача.
В папке есть документы ms word в формате rtf
Нужно рассортировать их по папкам по определенным признакам.
- дата
- тип
Эти признаки можно считать только с внутреннего текста документа.
Почти во всех случаях строки находяться в диапазоне 1-8 строчек документа + между ними может находиться графический объект.

Идея реализации
- открыть файл
- считать строки в массив
- найти по ключевым словам то что нужно распихать по папкам.

1. реальна ли реализация такого вообще?
2. как внедриться в ворд?
3. возможные способы реализации?

пс. собственно проблема только в работе с ms word, пока что %)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
дай пример рабочего документа где содержатся нужные строки
 
Автор
M

magros

Новичок
Сообщения
20
Репутация
1
извините более полный документ выложить не могу, из-за специфики ;)
вот его структура
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Сложно что-либо посоветовать в таком деле как парсинг не видя само содержимое текстов. Поэтому могу предложить только это. Надеюсь, дальше сам разберешься, как из текста вытаскивать нужные поля
Код:
$path = @ScriptDir & '\1.doc'; путь до документа
$oDOC = ObjCreate('Word.Application'); запускаем MS Word
$doc = $oDOC.Documents.Open($path); Открываем документ
$sTXT = $doc.Content.Text; текстовое содержимое документа
MsgBox(0, '', $sTXT); Проверяем
$oDOC.quit(0); Закрытие MS Word без сохранения
 
Автор
M

magros

Новичок
Сообщения
20
Репутация
1
чудесно!
вечер обещает пройти занятно..

сразу спрошу
Код:
$sTXT = $doc.Content.Text;

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

zero_1632

Новичок
Сообщения
15
Репутация
0
отлично, а такой вопрос -как обработать БИТЫЙ документ?
Я не имею в виду восстанавливать, а просто определить что он битый.
Если делать
Код:
$doc = $oDOC.Documents.Open($path)
то на битом документе он пишет The requested action with this object has failed.
Собственно, как-то можно получить ошибку?
 
Верх