DotFix ::: Software protection portal
 *Начало * Ответить * Статистика * Задать вопрос * Поиск * FAQ * *

DotFix Forum / Вопросы программирования и исследования защит / Программа для тестирования знаний
Автор Сообщение
RideX
Участник


Дата: 26 Сен 2006 09:46


Попросили помочь сделать простенькую программу для тестирования знаний, написанную на VB, условия:
1) Вопрос задания - строка до 250 символов
2) Варианты ответа - строки до 200 символов, до 6 вариантов
3) Оценки вариантов - числа
4) Возможность контролировать цену вопросов, т.е. текствоые EDIT, в которых прописывается, сколько баллов будет получено в случае верного ответа, а в случае неверного - какой будет штраф.

Использовать базы данных, типа связки ADO + Access + SQL, нельзя! Потому встаёт первый вопрос, как проще спроектировать пользовательскую базу для тестов и хранить в ней данные, чтобы потом было наиболее удобно и просто работать с ней? Например:

Вариант I, через структуру типа:
 
TQuestion = record 
 strQuestion: String[250]; // вопрос 
 strAnswer1 : String[200]; // ответ 1 
 strAnswer2 : String[200]; // ответ n 
 nMark1     : BYTE;        // положитнльная оценка на вопрос  
1 nMark2 : BYTE; // положитнльная оценка на вопрос
n nNegMark1 : BYTE; // отрицательная оценка на вопрос
1 nNegMark2 : BYTE; // отрицательная оценка на вопрос
n end;



Вариант II, в строках через разделитель, баллы по позиции значения в строке:
 
1. strQuestion 
2. strAnswer1#strAnswer2 
3. nMark1nMark2nNegMark1nNegMark2 



Вариант III, в отдельной строке каждое значение:
 
1. strQuestion 
2. strAnswer1 
3. strAnswer2 
4. nMark1 
5. nMark2 
6. nNegMark1 
7. nNegMark2 



Вариант IV, в .ini файле:
 
[Main] 
nCount=n 
[strQuestion<n>]= 
[strAnswer1]= 
[strAnswer2]= 
[nMark1]= 
[nMark2]= 
 
[strQuestion<n+1>]= 
[strAnswer1]= 
[strAnswer2]= 
[nMark1]= 
[nMark2]= 


Admin
Администратор


Дата: 26 Сен 2006 21:25


за тебя эту программу писать и разрабатывать никто не будет. Если что не понятно конкретное при программировании спрашивай, а так у всех есть свои дела и не так много свободного времени

RideX
Участник


Дата: 27 Сен 2006 08:49


Где я просил что-то написать за меня? Я только спросил, цитата: "как проще спроектировать пользовательскую базу для тестов и хранить в ней данные, чтобы потом было наиболее удобно и просто работать с ней?", потому как с VB столкнулся впервые. Тебе если нечего сказать по данному поводу - просто помолчи.
Теперь по существу вопроса. Почитав доки, думаю, построчный вариант работы с файлом самый простой, остановился на нём.

Admin
Администратор


Дата: 27 Сен 2006 18:50


Не умничай - разработка БД - это 1/3 всей работы. Вся твоя прога пишется за вечер без напрягов.

Quoting: RideX

Почитав доки, думаю, построчный вариант работы с файлом самый простой, остановился на нём.

Самый простой - разработать структуру которую сохранять в файл и считывать командой Get.

RideX
Участник


Дата: 28 Сен 2006 14:59


Прошу прощения, конечно, что был резковат в предыдущем посте, просто действительно мне нужен был всего лишь совет, а не тычок мордой в грязь. Кстати, полностью согласен, что прога пишется элементарно за пару часов даже на асме, это я бы сам сделал легко без всякой помощи, но VB я не знаю абсолютно, потому хотелось начать сразу с правильного подхода. За подсказку работы со структурой и функцией Get действительно спасибо! По поводу этой ф-ции компилер выдал следующее сообщение:
 
'Get' statements are no longer supported. File I/O functionality is a 
vailable in the 'Microsoft.VisualBasic' namespace.



Что в общем-то сначала привело меня к такому коду:
 
Dim FileStream As New BinaryReader(File.Open(strFileName, FileMode.Op 
en))



Но как оказалось, в VB по умолчанию эти ф-ции работают с Unicode, для работы с ANSI потребовались совсем незначительные изменения, что в конце привело к такому результату (чтение из файла):
 
If hFile.Exists Then 
   Dim pMemory As String = "" 
   Dim FileStream As New BinaryReader(File.Open(strFileName, FileMode 
.Open)) Dim FileStream As IO.BinaryReader = New IO.BinaryReader(hFile.Open
(FileMode.Open), System.Text.Encoding.GetEncoding(1251)) FileStream.BaseStream.Seek(0, SeekOrigin.Begin) pMemory = FileStream.ReadChars(250) '... FileStream.Close() End If


Причём эта ф-ция позволяет читать не только как массив символов (ReadChars), но и вообще как любой тип данных, даже такие как числа с плавающей точкой! Сейчас осталось разобраться с типом данных структура, это всё таки поудобнее будет чем несвязные между собой переменные

RideX
Участник


Дата: 28 Сен 2006 16:36


Со структурой вроде всё понятно, но как оказалось BinaryWriter не может записать её всю целиком, только по полям в отдельности
With BinaryWriter, you have to write primitive data type 
s. You can't write out a whole structure. So, to output the informatio
n, you need to write each field individually.


RideX
Участник


Дата: 28 Сен 2006 21:12


Мда.. как мне только что сообщили, я вообще не то делаю Оказывается нужно делать на VB 6 и только на нём, два дня потрачены впустую..

Admin
Администратор


Дата: 29 Сен 2006 19:26


Quoting: RideX

По поводу этой ф-ции компилер выдал следующее сообщение:

Так бы и сказал что речь идет о VB .NET а не о стандартном VB6. На .NET'е свои премудрости там и СУБД проще использовать - там под это гора встроенных средств.

Quoting: RideX

Мда.. как мне только что сообщили, я вообще не то делаю Оказывается нужно делать на VB 6 и только на нём, два дня потрачены впустую..


Ага Кстати он удобнее VB .NET

RideX
Участник


Дата: 30 Сен 2006 09:03


Да, согласен на все 100%, VB 6 лучше чем .NET тем, что даёт больше контроля над своим кодом, ближе к операционной системе. Я в тот же день его поставил со своего старого диска с VisualStudio 98 Ну, я уже знал с чего начать ;) потому всё сразу нормально пошло через Get/Put.
У модератора прошу прощения, если здесь на форуме запрещено постить ссылки на варез, но хочу сказать, может кому пригодится, нашел пару книг по VB 6:
1.
Автор: Никита Культин
Название книги: Visual Basic: освой на примерах
Страниц: 288
Издат-во: БХВ-Петербург 2004
Формат: pdf
Размер файла: ~ 7 Мб
Скачать: http://rapidshare.de/files/9168645/Visual_Basic_osnovi_na_primerah_by_ GERZ.ru.pdf.html

2.
Автор: Микаэль Хальворсон
Название книги: Microsoft Visual Basic 6.0 для профессионалов. Шаг за шагом
Страниц: 720
Издат-во: ЭКОМ 1999
Формат: djvu + исходники с CD
Размер файла: ~ 68 Мб
Скачать: http://rapidshare.de/files/19197305/Visual_Basic_6.0_SBS.rar.html

P.S. GPcH, может залить эти книги тебе на сайт в раздел доки? Если что, я их уже качнул, а исходящий траф у меня бесплатно, так что могу это сделать.

Admin
Администратор


Дата: 1 Окт 2006 23:03


Quoting: RideX

У модератора прошу прощения, если здесь на форуме запрещено постить ссылки на варез, но хочу сказать, может кому пригодится, нашел пару книг по VB 6

Ссылки можно, а заливать нет, так что извини

Я сам то без книг учился в свое время потому думаю VB модно освоить по статьям в разделе статьи на сайте

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Код 
... Отменить *Что это?


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль