Я уже говорил, что хранилища позволяют организовать каталоги и файлы в одном файле. Тем самым Вы создаете свою файловую систему. Программируя под DOS бухгалтерские программы, а в частности складского учета приходилось под каждый месяц заводить файл или каталог с проводками. Со временем этих файлов становилось все больше и больше. Переносить их было неудобно. Вы можете увидеть во многих серьезных продуктах кучу папочек, в которых куча файлов. Вот этого как раз и позволяют избежать хранилища. Я всегда за то, чтобы в программе было как можно меньше файлов. Файл с данными должен быть один. А не куча связанных. Итак, давайте сравним хранилище с файловой системой.
хранилища (storages) - каталоги потоки (streams) - файлы
Прямая корреляция прослежваеться и при разборе функций работы с хранилищами:
Функция IStorage | Эквивалентная функция прерывания 21h DOS | Описание |
---|---|---|
CreateStream | 5Bh Создать новый файл | Создать новый поток |
OpenStream | 3Dh Открыть файл с помощью указателя | Открыть существующий поток |
CreateStorage | 39h Создать каталог | Создать новое хранилище |
OpenStorage | 3Bh Сменить текущий каталог | Открыть существующее хранилище |
EnumElements | 4Eh Найти первый файл 4Fh Найти следующий файл | Перенумеровать потоки в хранилище |
RenameElement | 56h Переименовать файл | Переименовать поток |
DestroyElement | 41h Уничтожить файл | Уничтожить поток |
Помимо всего прочего в файлах хранилища находится справочная информация. Эта информация видна в диалоговом окне Summary Info:
Именно на основе этой информации и организован быстрый поиска документов в Microsoft Office. При создании хранилища этот раздел создается автоматически. Посмотрите свойства хранилища, которое мы создавали. Там то же есть этот блок.
Данный механзм очень похож на, то как в Norton Commander можно было заполнить описание для папочки. Помните еще ??? Файл можно было создать и при просмотре видеть описание папки. Вот это практически тоже самое.