-
Пробежал... (28.07.08 11:15) [0]Ядро программы должно предоставлять механизма для хранения / извлечения данных, чтобы модули программы могли им воспользоваться.
Вот думаю в каком формате предусмотреть функции? Что будут делать сторонние модули - черт их знает, какие данные им потребуется хранить - аналогично неизвестно.
То ли делать функции хранения по типу стандартных:function SetParam(IdParam: string; Value: string)
function SetIntParam(IdParam: string; Value: integer)
function GetParam(IdParam: string; DefValue: string): string;....
...
ну и так далее. Или предусмотреть еще секции навроде INI-файлов?function SetParam(IdSection, IdParam: string; Value: string)
Или сделать БД / SQL логику? Она сильно отличается...
У кого может был опыт, что лучше сделать? Какой интерфейс оптимальный для хранения данных, что предусмотреть нужно?
Модули ну как минимум настройки всякие свои будут хранить... -
tesseract © (28.07.08 11:20) [1]Да любой, чем ini-файлы не устравивают ? Можно в sqlite хранить, если уж очень много настроек будет.
-
b z (28.07.08 11:21) [2]
> Вот думаю в каком формате предусмотреть функции?
Это как, простите? В формате С# :), не оно?
> То ли делать функции хранения по типу стандартных:
Где стандарт описан? -
Anatoly Podgoretsky © (28.07.08 11:28) [3]> Пробежал... (28.07.2008 11:15:00) [0]
(ID: Integer; Value: Variant);
(ParamName: string; Value: Variant);
..
(ID: Integer): Variant;
(ParamName: string): Variant; -
Что такое "интерфейс для хранения"?
-
Anatoly Podgoretsky © (28.07.08 11:36) [5]> Johnmen (28.07.2008 11:32:04) [4]
Итерфейс - это муждумордие, а если автор что то другое вкладывает в это, то пусть колется. -
Медвежонок Пятачок © (28.07.08 11:36) [6]Вот думаю в каком формате предусмотреть функции?
А ты знаешь много форматов функций? -
Пробежал... (28.07.08 11:41) [7]>Да любой, чем ini-файлы не устравивают ? Можно в sqlite хранить, если уж
>очень много настроек будет
вопрос не в том, как это хранить движку программы. Вопрос в формате функций, предоставляемых модулям для хранения данных в некое абстрактное хранилище.
Формат функций надо сразу заранее сделать, и потом они не будут меняться (естественно, поэтому и не хочется ошибиться), модули понятие не имеют как физически хранятся данные, но интерфейс нужен. -
Zeqfreed © (28.07.08 11:54) [8]Сохранить/Прочитать/Очистить.
Остальным должен заниматься сериализатор. -
tesseract © (28.07.08 11:58) [9]
> Остальным должен заниматься сериализатор.
За чем тут сериализатор ? Перегрузкой можно обойтись. Форматов то всего :
1. Число
2. Короткая строка
3. Длинная строка /текст
4. Бинарные данные -
Zeqfreed © (28.07.08 12:00) [10]> tesseract © (28.07.08 11:58) [9]
Про форматы в посте автора я вообще ничего не вижу. -
Медвежонок Пятачок © (28.07.08 12:02) [11]Вопрос в формате функций
Используй второй снизу, зеленый. -
Полюбому делай вот так.function SetData(AData : Pointer; ADataSize : Cardinal) : Boolean;
-
Rouse_ © (28.07.08 13:44) [13]Когда мне нужно делать что-то подобное для хранения настроек различных классов, я реализую у каждого класса метод SaveToStream и LoadFromStream, а уж как ты будешь сами потоки данных хранить - дело десятое.