Вверх ↑
Разработчик
Ответов: 26163
Рейтинг: 2127
#1: 2009-11-14 17:19:23 ЛС | профиль | цитата
Dilma писал(а):
я пока не понимаю зачем и для чего это

Это -- некий прообраз файлового мешка. Кстати, все виртуалные машины используют такой принцип, логическое хранение информации на дисках, физическое -- в файле. Мне так кажется, что это дело должно заинтересовать многих. Все же, хранение многих файлов в одном имеет неоспоримое преимущество перед хранением их на диске по разным углам, да и один файл скопировать с места на место гораздо быстрее, чем тысячу маленьких

Вот небольшая , но интересная инфа на основе выдержки из статьи Михаила Продана: "СОМ хранилища: подпольная файловая система".

"СОМ хранилища: подпольная файловая система".

Перед многими программистами рано или поздно встает вопрос: "В каком формате хранить данные своей программы". Хорошо, если это тип данных с фиксированной длинной, а если надо сохранить разнородные данные, да еще чтоб в одном файле (чтоб потом не разбираться с десятком другим файлов с данными)... Тут на помощь приходит сама Windows с технологией структурированного хранилища данных.

Определения
Структурированные хранилища данных - это файлы особой "самодокументированной" структуры, в которых могут мирно уживаться разнородные данные (от простого текста, до фильмов, архивов и... программ). Так как эта технология есть неотъемлемой частью Windows, то доступ к ней возможен из любого средства программирования, которое поддерживает технологию COM. Одним из таких приложений является и Delphi, на основе которого будет описана технология доступа к структурированным хранилищам данных.

Структура хранилищ
Как уже было сказано, COM хранилища - файлы особой структуры, напоминающие иерархическую файловую систему. Так в них есть корневое хранилище (Root Entry) в котором могут содержаться как отдельные потоки("файлы"), так и хранилища второго уровня("каталоги"), в них в свою очередь хранилища третьего уровня и т.д. Управление каждым хранилищем и потоком осуществляется посредством отдельного экземпляра интерфейса: IStorage - для хранилищ и IStream - для потоков.


Dilma писал(а):
Тем более не понятно зачем там интерфейсы

Там применяется стандартный ActiveX, и у Storag-а есть собственный интерфейс. Гы, я бы с радостью написал бы на WinAPI, если бы знал формат этого файла. Ну не перевариваю я COM-объекты, слишком там все заморочено, может только для меня, и кому-то их понять легко.

------------ Дoбавленo в 17.22:
Dilma писал(а):
word уже как несколько лет назад перешел на XML

По крайней мере, Word2003 пишет *.doc именно в формате SStorage, а не XML. Тестовой программой SStorage прекрасно вскрываются его файлы, как дисковый накопитель с файловой структурой
карма: 22

1
Голосовали:Genius