Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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 самое лучшее решение

Автор: Rennigth 26.10.2007, 14:44
Цитата(EvilsInterrupt @  26.10.2007,  14:22 Найти цитируемый пост)
kaktus90, XML-файл продумай, это легко! И XML Data Binding самое лучшее решение 

Цитата(kaktus90 @  26.10.2007,  13:46 Найти цитируемый пост)
Необходимо хранить задания и ответы к ним

Можно и так, только зашифровать хорошенько придеться.

Автор: 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
Цитата(kaktus90 @  27.10.2007,  12:28 Найти цитируемый пост)
А в саму прогу вбить проблематично - объём большой

  Можно добавить их в ResourceString. Т.е. в раздел строковых ресурсов. Для этого можно либо сделать либо отдельный модуль, либо добавить в один из текущих модулей. Так они всегда будут на виду и легко редактироваться. Но вот только умный студент все равно сможет их найти каким-нибудь ResHackerom, также как если их вбивать в код. 
  Можно попросту строки сжать zLib ом сохранить на диск, потом заганать в ресурс. в проге загрузить ресурс и распаковать и загрузить в StringList. 

Автор: Still 27.10.2007, 13:57
Как вариант всю информацию хранить в файлах в закодированном виде, а при проверке в программе, раскодировать и сравнивать.

Код

Слово: Задание
В кодированном виде: n+3auEtevG


Это для примера. Вот в таком подобном кодированном виде можно хранить данные в файлах.[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
Цитата(EvilsInterrupt @  27.10.2007,  17:10 Найти цитируемый пост)
Зашифровать то не сложно! 

Дело не только в шифровании. Никто не спорит, что не сложно. Все дело в простоте работы. Думаю с IniFile`ами все умеют работать. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)