Ну вот и все, кажется я добил, бетта-версию группы компонентов для работы со структуированными хранилищами. Информации по данному виду интерфейса, крайне скудная, в основном, все для просмотра параметров, а не для работы. Примеры на дельфях отвратительны, дальше одной папки не видит ничего. Пришлось изрядно попотеть над пониманием взаимодействия интерфейсов, но кое-чего получилось. Пока, эта версия корректно работает под дельфями, на FPC старой версии дальше Root папки не читает файлы, хотя, их видит, насколько я понял, то не освобождается корректно интерфейс открытой папки, пес его знает, с чем это связано. Сложность у меня вызвало, так же, переназначения класса интерфейсного стрима на наш стрим, для полного к нему доступа, пока, это осуществляется только через память, и это накладывает ограничение на размер сохраняемого файла, в этом мне нужна помощь более продвинутого специалиста. Я бы был очень рад, если бы мне помог в этом деле Dilma, если, конечно, не очень занят.
Предвижу вопрос -- а для чего это нужно. Первое: это то, что можно иметь виртуальный накопитель в файле, это то, о чем здесь многие просили -- о создании файловых мешков, но все, что мы делали, и отдаленно не напоминает того, что предостваляет нам система. Второе: хранилище имеет нормальную системную таблицу размещения файлов, аналог FAT32 и доступом на уровне интерфейса сиcтемы. На будущее можно будет подумать над созданием и структуры NTFS, система предоставляет такую возможность, надо ее только реализовать. Ну вот, в принципе и все. Жду ваших рецензий.
Пример сейчас выложу, с экспериментальным хранилищем. Для корректной работы необходимо будет полное обновление с SVN
------------ Дoбавленo в 03.07:
Вот полнофункциональный пример, показывающий все возможные варианты работы с хранилищем, включая возможность превращать целые папки в хранилища. Предупреждение! В примере применяется zip сжатие и при попытке объединить хранилища с несжатыми данными возможны вылетания с ошибкой, но тут ошибка самого компонента zip, который не отличает сжатые данные от несжатых и пытается распаковать все, что ему дают. На примере все понятно из меню, также, есть меню контекста и работает Drag&Drop дерева для пересылки без нажатой Ctrl и копирование по Drag&Drop с зажатой Ctrl. Двойной клик запускает файлы в связанной программе.
Не торопясь я сделаю более завершенный пример, это альфа-версия ПО для работы с хранилищами
В архиве лежит переконверченная в хранилище наша папка Example, немного укороченная. Может попытаться поработать с ним
Возможно, кто-то почерпнет из примера что-то, не связанное с хранилищем, там есть много интересных реализаций, о которых регулярно спрашивают на форуме. Например, показано как работать с разными типами меню, в разных режимах
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
карма: 22 |
| ||
файлы: 1 | sstorage_b100.zip [735.7KB] [340] | ||
Голосовали: | Konst, Assasin, Леонид, vovs, filyaxxxcom, 3042, miver, CriDos |
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Очень понравилось, только жаль что форма примера называется Form(на панели задач)
|
|||
карма: 10 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Assasin писал(а): Очень понравилось, только жаль что форма примера называется FormДовожу до ума, будет нориально называться. Нужно еще реализовать обратное преобразование SStorage To Folder |
|||
карма: 22 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
А увеличение скорости упаковкираспаковки возможно? Файлы-хранилища размером 10МБ он читает записывает 1мин
|
|||
карма: 10 |
|
Ответов: 8930
Рейтинг: 823
|
|||
nesco, мне тоже, как и Assasin-у, всё и сейчас!
|
|||
карма: 19 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Assasin писал(а): А увеличение скорости упаковкираспаковки возможно? Файлы-хранилища размером 10МБ он читает записывает 1мина должен 1 секунду ------------ Дoбавленo в 16.33: не понятен смысл метода:
а это каким образом без RunTime error работает?
лишняя проверка
это тоже код с бомбой аналогично деструкторам выше:
вообще там каждый метод в весьма экстремальном стиле написан... nesco, откуда такие исходники взял? |
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma писал(а): nesco, откуда такие исходники взял?Да на королевстве такой был, подделал по себя. Честно, то я не сильно еще силен в переназначении классов и поведении их в динамике. Ты можешь довести это дело до ума, чтобы убрать всякие неясности и предполагаемые баги, все будут только благодарны Я могу выложить исходник с королевства, если нужен ------------ Дoбавленo в 16.49: Если это не так просто сделать, то может другой механиз взаимодействия с интерфейсом попробовать написать (это я для себя) ------------ Дoбавленo в 17.53: Вот, сделал обратное преобразование, но нужно обновление, там в Enumeratore добавлен необходимый аргумент полного пути ------------ Дoбавленo в 22.18: Я так подумал, что стоит пееделать оболочку интерфейса, оставив без изменения настроенный функционал компонентов. Просто, нашел пример более простого доступа к интерфейсу, без всяких заморочек с классами |
|||
карма: 22 |
| ||
файлы: 1 | sstorage_2.sha [91.6KB] [394] |
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): nesco, мне тоже, как и Assasin-у, всё и сейчас!Я про пример. ИМХО. |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): Я про примерЭтого невозможно выдавить из компонента файлового энумератора, но я добавил спрециальное свойство Sort в TreeVieverTrain. Его можно использовать, но оно не определяет папки это, или файлы, а сортирует в дереве все подряд. Погодите чуть чуть, не торопите меня, я сейчас переделываю интерфейс компонентов, это очень мутороное дело, там очень много тонкостей со взаимодействием различных интерфейсов, затем все это обновим и будем доделывать пример |
|||
карма: 22 |
|
Ответов: 758
Рейтинг: 112
|
|||
nesco писал(а): Предвижу вопрос -- а для чего это нужно. Первое: это то, что можно иметь виртуальный накопитель в файле, это то, о чем здесь многие просили -- о создании файловых мешков, но все, что мы делали, и отдаленно не напоминает того, что предоставляет нам система. Второе: хранилище имеет нормальную системную таблицу размещения файлов, аналог FAT32 и доступом на уровне интерфейса системы. На будущее можно будет подумать над созданием и структуры NTFS, система предоставляет такую возможность, надо ее только реализовать. Ну вот, в принципе и все. Жду ваших рецензий.Может чего не понял, то сразу извиняюсь Когда-то давно набрел на программку MyLib, с ядром бесплатной БД, где можно структурировано хранить файлы fdb - база данных, предназначенная для специальных проектов, требующих скорости обработки данных, универсальности структур и удобства разработки.
Преимущества fdb: 1. Принципиальное значение универсальности структур данных, а также возможности их комбинирования и усложнения. 2. Оптимизация функций ядра для обеспечения наилучших показателей скорости обработки данных 3. Формат файла, приемы хранения информации в котором, позволяют не только сократить размер файла, но и обеспечить возможность произвольного доступа. 4. Два сосуществующих метода программирования для fdb, сочетающие удобство и скорость разработки. Использование объектно-ориентированного программирования при работе с fdb 5. Компактность и переносимость БД. Файл библиотеки fdb.dll и модуль поддержки динамических типов borlndmm.dll имеют общий размер порядка 100Кб. fdb не требует установки в систему или регистрации своих компонентов, не зависит от установленных в системе модулей. 6. Полный справочник по функциям и объектной модели fdb, включая уроки для обучения "с нуля". http://fdb.linesoft.org/ Может чем поможет |
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
miver писал(а): с ядром бесплатной БД, где можно структурировано хранить файлыТеже фаберже, только вид сбоку. Там собственная релизация ядра, у нас попытка использовать системный интерфейс для работы с файловыми структурами |
|||
карма: 22 |
|
Ответов: 1841
Рейтинг: 369
|
|||
1) Какой максимально допустимый размер добавляемого файла?
2) В схеме лучше убрать чтение содержимого выделенного файла или выдавать окно с предложением показать содержимое файла... |
|||
карма: 1 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
CriDos писал(а): Какой максимально допустимый размер добавляемого файла?В данной реализации компонентов, зависит от размера памяти компа, а так -- предел у интерфейса 2Гб CriDos писал(а): В схеме лучше убрать чтение содержимого выделенного файла или выдавать окно с предложением показать содержимое файла...Ну это же пример. |
|||
карма: 22 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 5 раз(а), последний 2021-06-24 07:04:02 |
|||
карма: 0 |
|
Ответов: 1841
Рейтинг: 369
|
|||
Сообщение выше моё...
|
|||
карма: 1 |
|