Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];

Вниз

Хранилище данных   Найти похожие ветки 

 
Пробежал...   (2008-07-28 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 ©   (2008-07-28 11:20) [1]

Да любой, чем ini-файлы не устравивают ? Можно в sqlite хранить, если уж очень много настроек будет.


 
b z   (2008-07-28 11:21) [2]


> Вот думаю в каком формате предусмотреть функции?
Это как, простите? В формате С# :), не оно?

> То ли делать функции хранения по типу стандартных:
Где стандарт описан?


 
Anatoly Podgoretsky ©   (2008-07-28 11:28) [3]

> Пробежал...  (28.07.2008 11:15:00)  [0]

(ID: Integer; Value: Variant);
(ParamName: string; Value: Variant);
..
(ID: Integer): Variant;
(ParamName: string): Variant;


 
Johnmen ©   (2008-07-28 11:32) [4]

Что такое "интерфейс для хранения"?


 
Anatoly Podgoretsky ©   (2008-07-28 11:36) [5]

> Johnmen  (28.07.2008 11:32:04)  [4]

Итерфейс - это муждумордие, а если автор что то другое вкладывает в это, то пусть колется.


 
Медвежонок Пятачок ©   (2008-07-28 11:36) [6]

Вот думаю в каком формате предусмотреть функции?

А ты знаешь много форматов функций?


 
Пробежал...   (2008-07-28 11:41) [7]

>Да любой, чем ini-файлы не устравивают ? Можно в sqlite хранить, если уж
>очень много настроек будет

вопрос не в том, как это хранить движку программы. Вопрос в формате функций, предоставляемых модулям для хранения данных в некое абстрактное хранилище.

Формат функций надо сразу заранее сделать, и потом они не будут меняться (естественно, поэтому и не хочется ошибиться), модули понятие не имеют как физически хранятся данные, но интерфейс нужен.


 
Zeqfreed ©   (2008-07-28 11:54) [8]

Сохранить/Прочитать/Очистить.
Остальным должен заниматься сериализатор.


 
tesseract ©   (2008-07-28 11:58) [9]


> Остальным должен заниматься сериализатор.


За чем тут сериализатор ? Перегрузкой можно обойтись. Форматов то всего :
1. Число
2. Короткая строка
3. Длинная строка /текст
4. Бинарные данные


 
Zeqfreed ©   (2008-07-28 12:00) [10]

> tesseract ©   (28.07.08 11:58) [9]

Про форматы в посте автора я вообще ничего не вижу.


 
Медвежонок Пятачок ©   (2008-07-28 12:02) [11]

Вопрос в формате функций

Используй второй снизу, зеленый.


 
Skyle ©   (2008-07-28 13:00) [12]

Полюбому делай вот так.
function SetData(AData : Pointer; ADataSize : Cardinal) : Boolean;


 
Rouse_ ©   (2008-07-28 13:44) [13]

Когда мне нужно делать что-то подобное для хранения настроек различных классов, я реализую у каждого класса метод SaveToStream и LoadFromStream, а уж как ты будешь сами потоки данных хранить - дело десятое.


 
Ega23 ©   (2008-07-28 13:48) [14]


> а уж как ты будешь сами потоки данных хранить - дело десятое.


В ini-файлах!   :)


 
Eraser ©   (2008-07-28 13:53) [15]

обычно делаю как в [3] либо можно еще реализовать специальный класс, у которого свойство = настройка, унаследовать его от TComponent и сериализовать с пом. Read/WriteComponent.


 
Eraser ©   (2008-07-28 13:55) [16]

> [14] Ega23 ©   (28.07.08 13:48)

угу, в TMemIniFile, в потом его сохранять в поток и записывать в реестр или xml ;-)


 
Пробежал...   (2008-07-28 15:22) [17]


> Когда мне нужно делать что-то подобное для хранения настроек
> различных классов, я реализую у каждого класса метод SaveToStream
> и LoadFromStream, а уж как ты будешь сами потоки данных
> хранить - дело десятое.


проблема в том, что модули являются внешними DLL и написаны могут быть на любом языке соответственно.


 
Медвежонок Пятачок ©   (2008-07-28 15:33) [18]

и чего?
внутри dll классы + методы лоадфром сэйвту, снаружи функции сэйв/лоад


 
tesseract ©   (2008-07-28 16:24) [19]


> внутри dll классы


Создавать классы на чтение больших объёмов.... Это изврат, хотя от задачи зависит. Лучше COM - запустил и спокоен.


 
Медвежонок Пятачок ©   (2008-07-28 16:31) [20]

старая песня про пушку и воробьев.
для малы объемов - лишнее, а для больших - тормоза.
:)


 
blackman ©   (2008-07-28 16:58) [21]

для хранения / извлечения данных, чтобы модули программы могли им воспользоваться
Это не постановка задачи, а бред. А если им Энциклопедия понадобится или полный список жителей планеты? Конкретней надо и тщательнее! :-)


 
VirEx ©   (2008-07-28 18:00) [22]

write
read
seek
...


 
iZEN ©   (2008-07-29 00:17) [23]

Визируй Java Persistence API
http://voituk.kiev.ua/2008/01/30/introduction-to-java-persistence-api/



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.007 c
1-1198155538
андр
2007-12-20 15:58
2008.09.21
Передача параметров


2-1218362895
mokmoc
2008-08-10 14:08
2008.09.21
TStatusBar, размер TStatusPanel


15-1217245659
brother
2008-07-28 15:47
2008.09.21
слетел raid5 массив


15-1217231960
Пробежал...
2008-07-28 11:59
2008.09.21
Насчет пустой строки


15-1217578343
Vlad Oshin
2008-08-01 12:12
2008.09.21
интересную задачку нашел





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский