Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.24;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.009 c
2-1303201499
harisma
2011-04-19 12:24
2011.07.24
Не может найти модули


15-1302294599
Юрий
2011-04-09 00:29
2011.07.24
С днем рождения ! 9 апреля 2011 суббота


15-1302033916
Кто б сомневался
2011-04-06 00:05
2011.07.24
Post метод и комбобокс (js?)


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


15-1299782099
NailMan
2011-03-10 21:34
2011.07.24
Понюшка Неба