Версия для печати
Компонент TRyStorage
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1009Алексей Румянцев
дата публикации 17-05-2004 10:57Компонент TRyStorage Компонент TRyStorage написан на основе статьи Михаила Продана: "СОМ хранилища: подпольная файловая система". Полностью статью можно прочитать на странице автора.
Для введения в суть компонента я приведу здесь лишь вступительную часть статьи:
СОМ хранилища: подпольная файловая система".Перед многими программистами рано или поздно встает вопрос: "В каком формате хранить данные своей программы". Хорошо, если это тип данных с фиксированной длинной, а если надо сохранить разнородные данные, да еще чтоб в одном файле (чтоб потом не разбираться с десятком другим файлов с данными)... Тут на помощь приходит сама Windows с технологией структурированного хранилища данных.
ОпределенияСтруктурированные хранилища данных - это файлы особой "самодокументированной" структуры, в которых могут мирно уживаться разнородные данные (от простого текста, до фильмов, архивов и... программ). Так как эта технология есть неотъемлемой частью Windows, то доступ к ней возможен из любого средства программирования, которое поддерживает технологию COM. Одним из таких приложений является и Delphi, на основе которого будет описана технология доступа к структурированным хранилищам данных.
Структура хранилищКак уже было сказано, COM хранилища - файлы особой структуры, напоминающие иерархическую файловую систему. Так в них есть корневое хранилище (Root Entry) в котором могут содержаться как отдельные потоки("файлы"), так и хранилища второго уровня("каталоги"), в них в свою очередь хранилища третьего уровня и т.д. Управление каждым хранилищем и потоком осуществляется посредством отдельного экземпляра интерфейса: IStorage - для хранилищ и IStream - для потоков.
TRyStorage версия 1.1 Storage - хранение, склад, хранилище, накопление, аккумулирование, запоминающее устройство, память (вычислительной машины).
Самоцелью написания TRyStorage была попытка облегчить создание и работу с файлом-хранилищем путем групирования соответствующих функций в компонентную форму.
- Написан на Delphi5, работает под Win98-WinXP.
- На устойчивость к ошибкам особенно не тестировался.
Описание.
Будем считать что хранилище - это некое подобие файловой системы. С некоторой оговоркой эту формулеровку можно назвать корректной.
Как и в обычной файловой системе, в хранилище доступны такие функции как: создание/переименование/удаление папок, создание/считывание/запись/переименование/удаление файлов.
Для унификации с виндосовскими функциями, соответствующим storage-функциям, были даны привычные имена, но с приставкой "Stg"; т.е.: StgCreateFolder, StgCreateFile и т.д.
Как работать с TRyStorage?
- Создаем (или открываем существующий) файл-хранилище
- Storage := TRyStorage.Create('Test.xxx', stCreate);
- Создаем (или открываем существующий) "файл" в хранилище
или
- Stream := Storage.StgCreateFile('Test.txt');
- Stream := Storage.StgOpenFile('Test.txt');
- Записываем (или считываем) данные в "файл"
- работа полностью схожа с работой с TStream
- Закрываем "файл"
- Stream.Free;
- Закрываем хранилище
- Storage.Free;
В хранилище доступны также такие функции как:
- Создание, переименование, удаление папок и подпапок
- Storage.StgCreateFolder('Folder1');
- Storage.StgCreateFolder('Folder1\Folder2');
- Создание, открытие, переименование, удаление файлов
так же и работа с файлом в подпапках
- Stream := Storage.StgCreateFile('Test.txt');
- Stream := Storage.StgCreateFile('Folder1\Test.txt');
История. Основные пункты.
- Версия 1.0 - Первая версия.
- Версия 1.1 beta 1
- Добавлена возможность работы с папками и подпапками (создать/переименовать/удалить)
- Обновлены описание и комментарии
Лицензионное соглашение: по принципу "AS IS". Вы используете компонент на свой страх и риск, за возможные проблемы автор ответственности не несет.
Информация о найденных ошибках и недочетах будет принята с благодарностью.
Скачать демонстрационный пример RyStorage.zip (8K)