Вверх ↑
Разработчик
Ответов: 26163
Рейтинг: 2127
#1: 2009-12-02 02:49:04 ЛС | профиль | цитата
Ну вот и все, кажется я добил, бетта-версию группы компонентов для работы со структуированными хранилищами. Информации по данному виду интерфейса, крайне скудная, в основном, все для просмотра параметров, а не для работы. Примеры на дельфях отвратительны, дальше одной папки не видит ничего. Пришлось изрядно попотеть над пониманием взаимодействия интерфейсов, но кое-чего получилось. Пока, эта версия корректно работает под дельфями, на FPC старой версии дальше Root папки не читает файлы, хотя, их видит, насколько я понял, то не освобождается корректно интерфейс открытой папки, пес его знает, с чем это связано. Сложность у меня вызвало, так же, переназначения класса интерфейсного стрима на наш стрим, для полного к нему доступа, пока, это осуществляется только через память, и это накладывает ограничение на размер сохраняемого файла, в этом мне нужна помощь более продвинутого специалиста. Я бы был очень рад, если бы мне помог в этом деле Dilma, если, конечно, не очень занят.

Предвижу вопрос -- а для чего это нужно. Первое: это то, что можно иметь виртуальный накопитель в файле, это то, о чем здесь многие просили -- о создании файловых мешков, но все, что мы делали, и отдаленно не напоминает того, что предостваляет нам система. Второе: хранилище имеет нормальную системную таблицу размещения файлов, аналог FAT32 и доступом на уровне интерфейса сиcтемы. На будущее можно будет подумать над созданием и структуры NTFS, система предоставляет такую возможность, надо ее только реализовать. Ну вот, в принципе и все. Жду ваших рецензий.

Пример сейчас выложу, с экспериментальным хранилищем. Для корректной работы необходимо будет полное обновление с SVN
------------ Дoбавленo в 03.07:
Вот полнофункциональный пример, показывающий все возможные варианты работы с хранилищем, включая возможность превращать целые папки в хранилища. Предупреждение! В примере применяется zip сжатие и при попытке объединить хранилища с несжатыми данными возможны вылетания с ошибкой, но тут ошибка самого компонента zip, который не отличает сжатые данные от несжатых и пытается распаковать все, что ему дают. На примере все понятно из меню, также, есть меню контекста и работает Drag&Drop дерева для пересылки без нажатой Ctrl и копирование по Drag&Drop с зажатой Ctrl. Двойной клик запускает файлы в связанной программе.

Не торопясь я сделаю более завершенный пример, это альфа-версия ПО для работы с хранилищами

В архиве лежит переконверченная в хранилище наша папка Example, немного укороченная. Может попытаться поработать с ним

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

8
файлы: 1sstorage_b100.zip [735.7KB] [340]
Голосовали:Konst, Assasin, Леонид, vovs, filyaxxxcom, 3042, miver, CriDos