![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
resources vs ini для сохранения свойств [D7, WinXP]
alexrayne © (2009-11-07 11:56:00)Здрасте народ.
заходелось прикрутить к проекту сохранение\загрузку некоего списка объектов. Вот задумалсо, мозг морщу, как оно лучше сделать.
сохранять все ето дело как ресурс - ето совсем немного писанины, или каждому объекту прикрутить загрузку\сохранение в ini - ето уже порядочно кода навернуть нужно.
бывалые, посоветуйте, как быть, какой путь правильнее
alexrayne (2009-12-10 23:18:00) [1]у меня проблема только одна - попробовать сделать обзор готовых велосипедов прежде чем мастерить свой.
впринципе FCL ини вроде как парсит экранированые символом \ строки в стиле С.
если никто сей тривиальной задачи не решал и готовых рецептов неимеет, то буду сей парсер приспосабливать для своих нужд.
Медвежонок Пятачок (2009-12-09 09:18:00) [2]ага видно.
только у автора до сих пор какие-то проблемы которые он не решил.
brother (2009-12-09 09:15:00) [3]а для ini писать ничего не надо, все видно и без доп. телодвижений)
Медвежонок Пятачок (2009-12-09 09:12:00) [4]ежели вам почему-то стало скучно и вы хотите почитать глазами файл в котором храните настройки илди нечто, то напишите к этому xml файл трансформации и получите содержимое в виде плайн текста, ртф или хтмл.
brother (2009-12-09 09:08:00) [5]> оно там и будет в самом читаемом виде.
ага, со всеми тэгами xml) - оч, удобно читать
Медвежонок Пятачок (2009-12-09 09:07:00) [6]оно там и будет в самом читаемом виде.
Германн (2009-12-09 01:15:00) [7]
> xml вместо ини.
Классный вариант. Особо при "ибо хочетсо чтоб оно в читаемом виде было". :)
Медвежонок Пятачок (2009-12-08 23:29:00) [8]хм. а чем ReadComponent/WriteComponent не подходит? религия? )))
например не подходит из за косяков со свойствами default.
в том как сохранить в ини ключ содержащий несколько\много
строк текста.
xml вместо ини. многострочный текст хранить as is в узлах CDATA
AlexRayne (2009-12-08 18:40:00) [9]>>Eraser ©
base64 некатит, ибо хочетсо чтоб оно в читаемом виде было
alexrayne (2009-12-08 18:38:00) [10]вообчето а ини я хочу сохранить готовый ресурс который я со своего списка
вытяну.
FCL версия ини позволяет ненапрягаясь сохранять в записяь своих бинарные
потоки, посему в бинарном виде виде етот ресурс можно легко сохранить в
качестве одного из ключей ини.
но мне ж простых путей ненадо, мне хочется чтоб оно лежало в ини в виде куска
текста: несколько строк.
тобиш вопрос в том как сохранить в ини ключ содержащий несколько\много
строк текста.
Washington (2009-12-06 13:58:00) [11]хм. а чем ReadComponent/WriteComponent не подходит? религия? )))
Ганя (2009-12-06 12:18:00) [12]Если речь идет именно об объектах, то ini - вариант неважный.
Объекты имеют свойство выстраиваться в списки и деревья, при желании конечно можно и такую структуру запихать в ini, но это называется "через одно место, сами знаете, какое".
Не удобно ни разу
Eraser (2009-12-05 15:29:00) [13]> [11] AlexRayne (05.12.09 15:17)
> есть ли у кого удобоваримые способы хранить в ини куски
> текста?
можно кодировать в BASE64.
Eraser (2009-12-05 15:29:00) [14]> [0] alexrayne (07.11.09 11:56)
в XML.
AlexRayne (2009-12-05 15:17:00) [15]глянул я в jedi - там надо, насколько я бегло понял, создавать отдельный объект
с настройками от специально для етого заточеного предка. накой оно мне? да
еще и к проекту етих джедаев притягивать, тяжелые они. да и пишу я проект с
прицелом на перенос FPC/lazarus, а они пока туда неособе рвуться.
сейчас сделал как изадумывал сохранение ресурсов в виде текста, теперь вот
думаю как етот текст сохранять в ini файле?.
насколько я понял в существующем варианте парсер ini воспринимает только
однострочные записи. в fcl версии он воспринимает экранирование конца строки \
есть ли у кого удобоваримые способы хранить в ини куски текста?
Дмитрий Белькевич (2009-11-07 17:36:00) [16]Свойства объектов вообще я не сохранял. Сохраняю свойства компонент. Думаю, эта же библиотека сможут сохранить свойства всех персисентных объектов, не только компонент.
Сейчас использую жедаевскую (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.
Игорь (2009-11-07 13:41:00) [17]
> Дмитрий Белькевич (07.11.09 12:45) [5]
Согласен
Омлет (2009-11-07 13:12:00) [18]Объекты? dll через интерфейсы.
alexrayne (2009-11-07 13:01:00) [19]Собсно уточню вопрос.
используя ObjectTextToResource и обратное несложно сохранить весь мой список ресурсом в виде текста. и загрузить его также.
(моя задача именно сохранять\загружать целиком объекты а не отдельные ккието их настройки.) тогдавстает вопрос какие проблемы я могу огрести с такии настройками. чем ini лучше?
alexrayne (2009-11-07 12:55:00) [20]>>Если свойства объектов - published, то есть много готовых библиотек для их сохранения/восстановления из инишек
попродробнее пожалста. дайте сцылко. устраивает только опенсорьсь и фриварь ессно.