Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определить документ MSOffice [D7]


Ega23 ©   (2007-12-25 19:02:00) 

Задача такова:
есть директория с каким-то количеством файлов. Некоторые из них - файлы Excel, некоторые - Word, некоторые, например, PowerPoint.
Есть ли у них какая-то общая сигнатура (или общий интерфейс), по которому их можно однозначно отсортировать?


umbra   (2007-12-26 13:37:00) [1]

да, это я погорячился, что во всех документах. В ворде есть, да и то не всегда, как оказалось.


Ega23   (2007-12-26 11:24:00) [2]

Ну вижу в концце секцию "Root Entry". Ну проставлено там WorkBook.
Неубедительно, как-то...


umbra   (2007-12-26 11:16:00) [3]

да.


Ega23   (2007-12-26 11:15:00) [4]

от конца????


umbra   (2007-12-26 10:53:00) [5]

в "старых" документах оффиса в блоке размером 128 байт по смещению 512  от конца документа есть название приложения оффиса, в котором сделан файл.


Amoeba   (2007-12-25 21:58:00) [6]


> clickmaker ©   (25.12.07 21:16) [9]
>
>
> > [8] Dimaxx ©   (25.12.07 21:14)
>
> я подозреваю, что это общая сигнатура Structured Storage,
>  каковыми являются в том числе офисные файлы

Это бесспорный факт. У меня как раз есть проект с использованием структурированных хранилищ, и все соответствующие файлы действительно имеют в начале эту 8-байтовую последовательность: D0 CF 11 E0 A1 B1 1A E1.


clickmaker   (2007-12-25 21:16:00) [7]


> [8] Dimaxx ©   (25.12.07 21:14)

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


Dimaxx   (2007-12-25 21:14:00) [8]


> D0 CF 11 E0 A1 B1 1A E1
> в начале файла

Такую же сигнатуру имеет графический формат FlashPix (*.fpx) - он никакого отношения к офису не имеет.


turbouser   (2007-12-25 20:03:00) [9]


> Ega23 ©   (25.12.07 19:51) [5]
>
> Я и для текстового файла могу расширение bmp поставить

Можно о форматах например тут http://www.opennet.ru/links/sml/7.shtmlпосмотреть


> clickmaker ©   (25.12.07 19:58) [6]
>
> какое-то мелкое хулиганье у тебя пользователи )

+1


clickmaker   (2007-12-25 19:58:00) [10]


> [5] Ega23 ©   (25.12.07 19:51)

какое-то мелкое хулиганье у тебя пользователи )


Ega23   (2007-12-25 19:51:00) [11]


> А по расширению почему нельзя?


Я и для текстового файла могу расширение bmp поставить


b z   (2007-12-25 19:30:00) [12]


> > D0 CF 11 E0 A1 B1 1A E1

Для нового офиса (2007) такое не работает, там docx и xlsx = архив, а вот к примеру mpp (Project) по старому.


turbouser   (2007-12-25 19:22:00) [13]


> Ega23 ©   (25.12.07 19:20) [2]

А по расширению почему нельзя?


Ega23   (2007-12-25 19:20:00) [14]


> D0 CF 11 E0 A1 B1 1A E1


Ага. А, собственно, отличить Excel-файл, от документа Word? На уровне сигнатуры можно отличить, или уже пытаться OLE-объект создавать и exception ловить?


clickmaker   (2007-12-25 19:11:00) [15]

D0 CF 11 E0 A1 B1 1A E1
в начале файла


Наверх

Титульная страница Поиск, карта сайта Написать письмо