| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Хранение информации, используемой программой |
| Автор: kaktus90 26.10.2007, 13:46 |
| Пишу программу для учёбы. Необходимо хранить задания и ответы к ним. Т.е. пользователю даётся вариант задания, после его выполнения, результаты сверяются прогой с забитыми ответами. Как лучше всего организовать хранение этой информации? |
| Автор: Rennigth 26.10.2007, 13:49 |
| kaktus90, какая нить локальная база данных |
| Автор: EvilsInterrupt 26.10.2007, 14:22 |
| kaktus90, XML-файл продумай, это легко! И XML Data Binding самое лучшее решение |
| Автор: EvilsInterrupt 26.10.2007, 18:02 |
| kaktus90, А может ты не будешь мучаться а заюзаешь FireBird Embedded ? Забыл сказать, я щас аналогичную программу пишу, если интересно присоединяйся ;) |
| Автор: skyboy 26.10.2007, 19:44 |
| SQLite Firebird Embedded VolgaDB AbsoluteDB Как ни странно, локальных баз немало. И уж тем более "нестранно", что в разделе "общие вопросы по базам данных" есть закрепленная тема http://forum.vingrad.ru/forum/topic-30912.html, где выбор СУБД(в т.ч. и локальной) довольно подробно рассмтроены. |
| Автор: kaktus90 27.10.2007, 12:28 |
| Поясню. В каком виде хранить задания, которых будет примерно 100 и соответственно столько же ответов? Если в обычных файлах, то более-менее грамотный пользователь их может просмотреть и тогда все станут отличниками. А в саму прогу вбить проблематично - объём большой. В БД хранить тоже вряд ли получиться, потому что сами задания представлены строками по штук 15 и ответы также, но более менее формализованы. Что делать? |
| Автор: Alexeis 27.10.2007, 12:37 |
Можно добавить их в ResourceString. Т.е. в раздел строковых ресурсов. Для этого можно либо сделать либо отдельный модуль, либо добавить в один из текущих модулей. Так они всегда будут на виду и легко редактироваться. Но вот только умный студент все равно сможет их найти каким-нибудь ResHackerom, также как если их вбивать в код. Можно попросту строки сжать zLib ом сохранить на диск, потом заганать в ресурс. в проге загрузить ресурс и распаковать и загрузить в StringList. |
| Автор: Still 27.10.2007, 13:57 | ||
Как вариант всю информацию хранить в файлах в закодированном виде, а при проверке в программе, раскодировать и сравнивать.
Это для примера. Вот в таком подобном кодированном виде можно хранить данные в файлах.[code=nocolor] |
| Автор: VICTAR 27.10.2007, 14:59 |
| Я тут вспомнил, есть компонент TDataFile, работает по принципу TIniFile, только информация храниться в зашифрованном виде. Если учесть, что вопросов будет всего 100, то думаю, это неплохой вариант. |
| Автор: EvilsInterrupt 27.10.2007, 16:10 |
| Зашифровать то не сложно! Мало того что существует немерено компонентов, классов, так и самому простенкое шифрование замудрить не сложно, вот пример: Шифрование: Код символа + Ключ шифрования размером в байт = зашифрованный код символа Дешифрование: зашифрованный код символа - Ключ шифрования размером в байт = Код символа логично положить что это все сложение и вычитание по модули 2^8 , ну а ключ шифрования размером в байт можно любое числов взять. Но я бы просто взял и заюзал FireBird Embedded, т.к. работает шустро, ну и со строками работать тоже просто. Можно еще интересней поступить, взять XML Data BInding и с нечасто используемой кодировкой там хранить, догадался студент - ну и флаг ему в руки, респект и уважуха! ;) Можно загнать XML-файл в какой нить модуль u_QuestionsAndReplay а внем в виде строки Xml файл и работать с этим хозяйством в памяти используя TjanXMLParser2 |
| Автор: VICTAR 27.10.2007, 16:15 |
Дело не только в шифровании. Никто не спорит, что не сложно. Все дело в простоте работы. Думаю с IniFile`ами все умеют работать. |