Dilma писал(а):
я пока не понимаю зачем и для чего этоЭто -- некий прообраз файлового мешка. Кстати, все виртуалные машины используют такой принцип, логическое хранение информации на дисках, физическое -- в файле. Мне так кажется, что это дело должно заинтересовать многих. Все же, хранение многих файлов в одном имеет неоспоримое преимущество перед хранением их на диске по разным углам, да и один файл скопировать с места на место гораздо быстрее, чем тысячу маленьких
Вот небольшая , но интересная инфа на основе выдержки из статьи Михаила Продана: "СОМ хранилища: подпольная файловая система".
"СОМ хранилища: подпольная файловая система".
Перед многими программистами рано или поздно встает вопрос: "В каком формате хранить данные своей программы". Хорошо, если это тип данных с фиксированной длинной, а если надо сохранить разнородные данные, да еще чтоб в одном файле (чтоб потом не разбираться с десятком другим файлов с данными)... Тут на помощь приходит сама Windows с технологией структурированного хранилища данных.
Определения
Структурированные хранилища данных - это файлы особой "самодокументированной" структуры, в которых могут мирно уживаться разнородные данные (от простого текста, до фильмов, архивов и... программ). Так как эта технология есть неотъемлемой частью Windows, то доступ к ней возможен из любого средства программирования, которое поддерживает технологию COM. Одним из таких приложений является и Delphi, на основе которого будет описана технология доступа к структурированным хранилищам данных.
Структура хранилищ
Как уже было сказано, COM хранилища - файлы особой структуры, напоминающие иерархическую файловую систему. Так в них есть корневое хранилище (Root Entry) в котором могут содержаться как отдельные потоки("файлы"), так и хранилища второго уровня("каталоги"), в них в свою очередь хранилища третьего уровня и т.д. Управление каждым хранилищем и потоком осуществляется посредством отдельного экземпляра интерфейса: IStorage - для хранилищ и IStream - для потоков.
Перед многими программистами рано или поздно встает вопрос: "В каком формате хранить данные своей программы". Хорошо, если это тип данных с фиксированной длинной, а если надо сохранить разнородные данные, да еще чтоб в одном файле (чтоб потом не разбираться с десятком другим файлов с данными)... Тут на помощь приходит сама 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 прекрасно вскрываются его файлы, как дисковый накопитель с файловой структурой