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

Вниз

resources vs ini для сохранения свойств   Найти похожие ветки 

 
alexrayne   (2009-11-07 11:56) [0]

Здрасте народ.
заходелось прикрутить к проекту сохранение\загрузку некоего списка объектов. Вот задумалсо, мозг морщу, как оно лучше сделать.
сохранять все ето дело как ресурс - ето совсем немного писанины, или каждому объекту прикрутить загрузку\сохранение в ini - ето уже порядочно кода навернуть нужно.
бывалые, посоветуйте, как быть, какой путь правильнее


 
Игорь ©   (2009-11-07 12:10) [1]


> alexrayne   (07.11.09 11:56)


Сохраняю в ini под своим расширением типа .xxx, если надо шифрую, это так что кажется много писанины.


 
Игорь ©   (2009-11-07 12:13) [2]


> Игорь ©   (07.11.09 12:10) [1]
>
> это так что кажется много писанины.


Это так кажется что много писанины

(сопи паст заблудился)


 
Дмитрий Белькевич   (2009-11-07 12:23) [3]

Если свойства объектов - published, то есть много готовых библиотек для их  сохранения/восстановления из инишек.


 
Игорь ©   (2009-11-07 12:34) [4]


> Дмитрий Белькевич   (07.11.09 12:23) [3]


Если человек задумался и мозг морщит, значит сторонние компоненты не для него


 
Дмитрий Белькевич   (2009-11-07 12:45) [5]

Ну можно и ручками, конечно. Почему нет. Может более качественный велосипед сделает.


 
alexrayne   (2009-11-07 12:55) [6]

>>Если свойства объектов - published, то есть много готовых библиотек для их  сохранения/восстановления из инишек

попродробнее пожалста. дайте сцылко. устраивает только опенсорьсь и фриварь ессно.


 
alexrayne   (2009-11-07 13:01) [7]

Собсно уточню вопрос.
используя ObjectTextToResource и обратное несложно сохранить весь мой список ресурсом в виде текста. и загрузить его также.
(моя задача именно сохранять\загружать целиком объекты а не отдельные ккието их настройки.) тогдавстает вопрос какие проблемы я могу огрести с такии настройками. чем ini лучше?


 
Омлет ©   (2009-11-07 13:12) [8]

Объекты? dll через интерфейсы.


 
Игорь ©   (2009-11-07 13:41) [9]


> Дмитрий Белькевич   (07.11.09 12:45) [5]


Согласен


 
Дмитрий Белькевич   (2009-11-07 17:36) [10]

Свойства объектов вообще я не сохранял. Сохраняю свойства компонент. Думаю, эта же библиотека сможут сохранить свойства всех персисентных объектов, не только компонент.

Сейчас использую жедаевскую (jedi vcl) TJvAppIniFileStorage/TJvFormStorage, закладка "Jv Persistent".

Смотрю, там есть TJvAppStorage, у него есть методы (среди прочих) ReadPersistent/WritePersistent. Думаю, имеет смысл посмотреть на них.

   { Retrieves a TPersistent-Object with all of its published properties }
   procedure ReadPersistent(const Path: string; const PersObj: TPersistent;
     const Recursive: Boolean = True; const ClearFirst: Boolean = True; const IgnoreProperties: TStrings = nil);
   { Stores a TPersistent-Object with all of its published properties}
   procedure WritePersistent(const Path: string; const PersObj: TPersistent;
     const Recursive: Boolean = True; const IgnoreProperties: TStrings = nil);

Раньеше пользовал EhLib"овские аналогичные компоненты (жедаевские, прадва, лучше - меньше хлама в инишки пишется), давно видел что-то похожее в Rx Lib.


 
AlexRayne   (2009-12-05 15:17) [11]

глянул я в jedi - там надо, насколько я бегло понял, создавать отдельный объект
с настройками от специально для етого заточеного предка. накой оно мне? да
еще и к проекту етих джедаев притягивать, тяжелые они. да и пишу я проект с
прицелом на перенос FPC/lazarus, а они пока туда неособе рвуться.

сейчас сделал как изадумывал сохранение ресурсов в виде текста, теперь вот
думаю как етот текст сохранять в ini файле?.
насколько я понял  в существующем варианте парсер ini воспринимает только
однострочные записи. в fcl версии он воспринимает экранирование конца строки \

есть ли у кого удобоваримые способы хранить в ини куски текста?


 
Eraser ©   (2009-12-05 15:29) [12]

> [0] alexrayne   (07.11.09 11:56)

в XML.


 
Eraser ©   (2009-12-05 15:29) [13]

> [11] AlexRayne   (05.12.09 15:17)


> есть ли у кого удобоваримые способы хранить в ини куски
> текста?

можно кодировать в BASE64.


 
Ганя   (2009-12-06 12:18) [14]

Если речь идет именно об объектах, то ini - вариант неважный.
Объекты имеют свойство выстраиваться в списки и деревья, при желании конечно можно и такую структуру запихать в ini, но это называется "через одно место, сами знаете, какое".
Не удобно ни разу


 
Washington ©   (2009-12-06 13:58) [15]

хм. а чем ReadComponent/WriteComponent не подходит? религия? )))


 
alexrayne   (2009-12-08 18:38) [16]

вообчето а ини я хочу сохранить готовый ресурс который я со своего списка
вытяну.
FCL  версия ини позволяет ненапрягаясь сохранять в записяь своих бинарные
потоки, посему в бинарном виде виде етот ресурс можно легко сохранить в
качестве одного из ключей ини.
но мне ж простых путей ненадо, мне хочется чтоб оно лежало в ини в виде куска
текста: несколько строк.

тобиш вопрос в том как сохранить в ини ключ содержащий несколько\много
строк текста.


 
AlexRayne   (2009-12-08 18:40) [17]

>>Eraser ©  
base64 некатит, ибо хочетсо чтоб оно в читаемом виде было


 
Медвежонок Пятачок ©   (2009-12-08 23:29) [18]

хм. а чем ReadComponent/WriteComponent не подходит? религия? )))

например не подходит из за косяков со свойствами default.

в том как сохранить в ини ключ содержащий несколько\много
строк текста.


xml вместо ини. многострочный текст хранить as is в узлах CDATA


 
Германн ©   (2009-12-09 01:15) [19]


> xml вместо ини.

Классный вариант. Особо при "ибо хочетсо чтоб оно в читаемом виде было". :)


 
Медвежонок Пятачок ©   (2009-12-09 09:07) [20]

оно там и будет в самом читаемом виде.


 
brother ©   (2009-12-09 09:08) [21]

> оно там и будет в самом читаемом виде.

ага, со всеми тэгами xml) - оч, удобно читать


 
Медвежонок Пятачок ©   (2009-12-09 09:12) [22]

ежели вам почему-то стало скучно и вы хотите почитать глазами файл в котором храните настройки илди нечто, то напишите к этому xml файл трансформации и получите содержимое в виде плайн текста, ртф или хтмл.


 
brother ©   (2009-12-09 09:15) [23]

а для ini писать ничего не надо, все видно и без доп. телодвижений)


 
Медвежонок Пятачок ©   (2009-12-09 09:18) [24]

ага видно.

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


 
alexrayne   (2009-12-10 23:18) [25]

у меня проблема только одна - попробовать сделать обзор готовых велосипедов прежде чем мастерить свой.
впринципе FCL ини вроде как парсит экранированые символом \ строки в стиле С.
если никто сей тривиальной задачи не решал и готовых рецептов неимеет, то буду сей парсер приспосабливать для своих нужд.



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

Форум: "Основная";
Текущий архив: 2011.07.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.003 c
15-1302086638
Jan
2011-04-06 14:43
2011.07.24
реально ли в рантайме поменять classname формы или я делаю не так


2-1302852892
OlegM
2011-04-15 11:34
2011.07.24
Как не дать запустить моё приложение из другова приложения ?


15-1301903703
oldmanAPOOERE
2011-04-04 11:55
2011.07.24
Сегодня - день Интернета.


4-1249279630
DevilDevil
2009-08-03 10:07
2011.07.24
Выделен текст в ComboBox


2-1303219375
harisma
2011-04-19 17:22
2011.07.24
Горизонтальная прокрутка в TTreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский