![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программа ТЕСТ [D6, XP]
Revan © (2006-01-02 20:57:00)Помогите пожалуйста!
Нужно сделать программу тестирования, все вопросы, ответы, правильные ответы хранятся в текстовых файлах.
придумал вот такой код, почему то не работает:
var
Form1: TForm1;
a: string;
i,j,s :byte;
k: integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
k:=0;
Memo1.Lines.LoadFromFile('1.txt'); // Загружаем вопросы, отв,, прав. отв.
Memo2.Lines.LoadFromFile('2.txt');
Memo3.Lines.LoadFromFile('3.txt');
end;
procedure TForm1.Button1Click(Sender: TObject); /// выбрать и ответить
begin
//проверяем какой вариант был выбран
if RadioButton1.Checked=true then
a:=radiobutton1.caption;
if RadioButton2.Checked=true then
a:=radiobutton2.caption;
if RadioButton3.Checked=true then
a:=radiobutton3.caption;
if RadioButton4.Checked=true then
a:=radiobutton4.caption;
for s:=1 to 10 do begin
if a=memo3.Lines[s] then begin
inc(k);
end;
end;
Label1.Caption:=Memo1.Lines[j+1];
RadioButton1.Caption:=Memo2.Lines[1+(4*i)];
RadioButton2.Caption:=Memo2.Lines[2+(4*i)];
RadioButton3.Caption:=Memo2.Lines[3+(4*i)];
RadioButton4.Caption:=Memo2.Lines[4+(4*i)];
edit1.Text:=IntToStr(k);
inc(j);
inc(i);
end;
procedure TForm1.Button2Click(Sender: TObject); //// кнопка начать тест
begin
Label1.Caption:=Memo1.Lines[j+1];
RadioButton1.Caption:=Memo2.Lines[1+(4*i)];
RadioButton2.Caption:=Memo2.Lines[2+(4*i)];
RadioButton3.Caption:=Memo2.Lines[3+(4*i)];
RadioButton4.Caption:=Memo2.Lines[4+(4*i)];
edit1.Text:=IntToStr(k);
inc(j);
inc(i);
end;
end.
Почему то переменная "к" всегда ровнона "0",т.е. не считает правильные ответы, алгоритм простой, но не работает. Заранее благодарю.
Revan (2006-01-03 13:34:00) [1]kami Ты прав :) Извиняюсь за свою невнимательность.
Плохиш (2006-01-03 11:23:00) [2]Для начала рекомендую заменить все Memo на TStringList.
kami (2006-01-03 01:40:00) [3]Тогда, вполне возможно, что строки в файле 3 не соответствуют строкам в файле 2 (возможно, лишние пробелы или что-то вроде этого). Я же говорю - пройдись отладчиком по этому циклу и посмотри, что представляют собой a и memo3.Lines[s] при верном ответе
Revan (2006-01-03 00:46:00) [4]ничего не изменилось :((((
DrPass (2006-01-02 23:54:00) [5]for s:=1 to 10 do begin
попробуй заменить на
for s:=0 to Memo3.Lines.Count-1 do begin