![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Господа, есть программа, есть настройки, которые нужно записывать а в дальнейшем, при загрузке читать.
Я реализовал это так, как мне подсказала логика - запаковал все настройки в структуру TParams (приводить ее здесь не буду, ничего особенного). Создана единственная переменная: TParams Params; которая тупо пишется в файл. Но периодически файл с настройками бьется. Возможно у меня глюк в программе и в файл попадает мусор. Я хотел спросить, может существуют какие-то правила хорошего тона программирования при сохранении параметров, которые позволяют получить глюкоустойчивый код? В частности, я быстро накропал код, который сохраняет параметры в базе MySQL - все отлично. Но программа не должэна использовать базу данных. Другими словами, я бы хотел, чтобы форумцы поделились опытом - как вы решаете эту задачу? Может есть какие библиотеки готовые? |
|||
|
||||
ChipNDale |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.6.2010 Репутация: 1 Всего: 1 |
Храните в любом удобном формате: ini, json, xml. Библиотеки для работы легко гуглятся.
|
|||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
не.... программа предназначена для контроля персонала.
Файл не должен с легкостью редактироваться ручками. Это сообщение отредактировал(а) =Женек= - 15.9.2013, 11:04 |
|||
|
||||
ChipNDale |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.6.2010 Репутация: 1 Всего: 1 |
Хм... SQLite?
|
|||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Сейчас гляну... P.S. Ник у вас... Как раз по ТВ сейчас мультик идет соответствующий))) |
|||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Штука, конечно, удобная.
А вот чем бы ее прикрутить к Builder XE ? Нашел какой-то AnyDAC (он же FireDAC), так там нет инсталлятора под билдер, только под дельфи... |
|||
|
||||
akizelokro |
|
||||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Чёто у меня никогда не падает и не бьётся. Надо проработать.
Винда? Закинь в ресурсы, если такое требование. Как сделать.. делают. -------------------- a = a + b; b = a - b; a = a - b; |
||||
|
|||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Ну представь себе такую ситуацию, ты работаешь с программой, ввел 50 параметров, ручками. А потом тебе понадобилось предусмотреть в программе 51-й параметр. Ты добавил его в структуру. И теперь программа ранее записанную в файл структуру из 50 параметров не прочтет. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Дык .s3db - файлы легко редактируются при помощи SQLite Expert Тогда уж нужно данные шифровать (или просто сжимать, как предложил baldina) Это сообщение отредактировал(а) borisbn - 16.9.2013, 14:12 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
ТарасАтавин |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
1. Если формат может меняться, например, если развивается сам проект, чьи опции требуется сохранять, то следует предусмотреть резервные поля и/или резервные коды (теги). Заполнение резервного поля чем либо, кроме нулей, будет означать, что файл сохранён в новой версии формата, прога при чтении делает выводы и реагирует. Использование резервного кода прямо говорит о новой версии формата. 2. Ни когда не сохраняй на диск указатели, в дисковом формате их должны заменять смещения. От начала файла, от начала секции файла, от заголовка файла, от заголовка секции файла, от самого поля смещения... От чего угодно, но это адрес не в адресном пространстве оперативной памяти, а в придуманной тобой схеме внутрифайловой адресации. 3. При загрузке элементов зарезервированного массива или проверяй количество его элементов, или пусть это будет константа. 4. Даже если количество элементов массива - константа, не полагайся на то, что оно известно программе. Оно должно или явно храниться в поле/теге файла, или вычисляться по другим полям/тягам, или за массивом должен следовать некий терминальный элемент, по которому можно будет определить, что массив закончен. -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 3 Всего: 17 |
||||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |