Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 13:56   #1
Гурам
Пользователь
 
Регистрация: 07.05.2010
Сообщений: 13
По умолчанию Тест в Делфи

Здравствуйте. У меня тест сделан на 4 формах первая для ввода данных о пользователе. вторая для первого тапа вопросо (Ответ вводится в Edit), третья для второго типа вопросов (c RadioButton) и четвернтая для третего типа (с CheckBox). Для каждой из трех форм своя БД (в .txt) расчитанная на 200 вопросов. Как сделать так чтоб спомощью Random из каждой базы для своей формы вытягивалось 10 вопросов (т. е. тест состоит из 30) и по прохождению этих 10 вопросов открывался следущая форма для другова типа вопросов?
Гурам вне форума Ответить с цитированием
Старый 24.05.2010, 16:22   #2
vitaliy1911
Пользователь
 
Аватар для vitaliy1911
 
Регистрация: 19.05.2010
Сообщений: 35
По умолчанию

БД реализована просто через текстовый файл или через типизированный файл?

если через текстовый файл то единственное что приходит в голову - создать три массива по 10 чисел integer, которые будут генерироваться через random(200). а потом через цикл последовательно сравнивать номер вопроса с числом из массива, и те, что совпадают выводить на форму.

а если типизированный файл то все гораздо прооще - создаешь цикл в 10 шагов и пишешь в нем
seek(имя_файловой_переменной,random (200));
vitaliy1911 вне форума Ответить с цитированием
Старый 24.05.2010, 17:24   #3
Гурам
Пользователь
 
Регистрация: 07.05.2010
Сообщений: 13
По умолчанию

Хорошо а как создать типизированый фаил?
Гурам вне форума Ответить с цитированием
Старый 24.05.2010, 17:37   #4
vitaliy1911
Пользователь
 
Аватар для vitaliy1911
 
Регистрация: 19.05.2010
Сообщений: 35
По умолчанию

типизированный файл - это файл где информация идет не в текстовом виде а в виде записей. например

Код:
type
    myquest=record //объявляем тип записи
    quest:string[100]; //текст вопроса
    v1:string[10]; //вариант ответа 1
    v2:string[10]; //... 2
    v3:string[10]; //... 3
    v4:string[10]; //... 4
    otv:0..3; // правильный ответ
    end;


  myfile=file of myquest;

var
    f:myfile; //файловая переменная
    s:myquest; //переменная записей
тело самой проги покажу на примере вывода на поля edit:

Код:
procedure какая-то процедура;

begin
  assignfile(f,<имя файла, например 1.txt>); //связываем файл с файловой переменной
  reset(f); //открываем файл для чтения (и записи)
  read(f,s); //читаем из файла первую запись в переменную записей s
  edit1.text:=s.quest;
  edit2.text:=s.v1;
  edit2.text:=s.v2;
  edit2.text:=s.v3;
  edit2.text:=s.v4;
end;
а если тебе надо считать случайный вопрос из файла то

Код:
procedure какая-то процедура;

begin
  assignfile(f,<имя файла, например 1.txt>);
  reset(f);
  seek(f,random(<количество записей в файле, например 200>)); //переходим к случайной записи в файле
  read(f,s);
  edit1.text:=s.quest;
  edit2.text:=s.v1;
  edit2.text:=s.v2;
  edit2.text:=s.v3;
  edit2.text:=s.v4;
end;
в конце обязательно closefile(f);

Последний раз редактировалось vitaliy1911; 24.05.2010 в 17:48.
vitaliy1911 вне форума Ответить с цитированием
Старый 24.05.2010, 20:36   #5
Гурам
Пользователь
 
Регистрация: 07.05.2010
Сообщений: 13
По умолчанию

В основном все понял, кроме одного: это получается я создаю обычный .txt документ, а в самой программе его уже делаю типизированным?
Гурам вне форума Ответить с цитированием
Старый 24.05.2010, 20:42   #6
vitaliy1911
Пользователь
 
Аватар для vitaliy1911
 
Регистрация: 19.05.2010
Сообщений: 35
По умолчанию

нет, самому тебе его создать не получится. точне создать ты его содашь конечно, но заполнить сам в блокноте не сможешь. придется либо создать отдельную форму для заполнения пустого файла вручную, либо (что в твоем случае думаю будет разумнее) написать программку перегона вопросов из текстового файла в типизированный. тупо открывать текстовый файл и через цикл присваивать значения из текстового файла значениям записи типизированного. кстати говоря типизированный файл не обязательно должен быть *.txt , можно любое расширение задать
vitaliy1911 вне форума Ответить с цитированием
Старый 24.05.2010, 20:54   #7
Гурам
Пользователь
 
Регистрация: 07.05.2010
Сообщений: 13
По умолчанию

Мда, я эти вопросы заморюсь перегонять все в типизированый фаил и к томуже я представления не имею как эту программу зделать.
Гурам вне форума Ответить с цитированием
Старый 24.05.2010, 22:44   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Гурам, на счет файла, может тебе INI-файлы попробывать. С ними работать очень просто. Все в одном файле хранить можно, для работы с файлом уже есть готовый класс, и вообще все просто для понимания.

Цитата:
Как сделать так чтоб спомощью Random из каждой базы для своей формы вытягивалось 10 вопросов
Если устроит, вот топорный способ:
1. Считай все варианты ответов из файла в массив;
2. Перемешай массив способом все из той же темы (тест в делфи);
3. Возми первые 10;

Цитата:
по прохождению этих 10 вопросов открывался следущая форма для другова типа вопросов
Ну тут уж ты братиц совсем ленишся
Код:
for i := 0 to 9 do begin
  {показываем форму типа 1}
end;
for i := 0 to 9 do begin
  {показываем форму типа 2}
end;
for i := 0 to 9 do begin
  {показываем форму типа 3}
end;
Sibedir вне форума Ответить с цитированием
Старый 24.05.2010, 23:38   #9
Гурам
Пользователь
 
Регистрация: 07.05.2010
Сообщений: 13
По умолчанию

Спс всем буду разбираться.
Гурам вне форума Ответить с цитированием
Старый 25.05.2010, 00:36   #10
vitaliy1911
Пользователь
 
Аватар для vitaliy1911
 
Регистрация: 19.05.2010
Сообщений: 35
По умолчанию

я сам с ini не работал но многие говорят что удобно, так что смотри сам
vitaliy1911 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тест в делфи Гурам Общие вопросы Delphi 6 11.05.2010 22:55
Тест в Делфи natasxa Помощь студентам 5 23.03.2010 22:20
Тест (Делфи) grom333 Помощь студентам 4 18.03.2010 09:03
Тест в делфи марго20 Помощь студентам 9 04.07.2009 12:03