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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2011, 19:05   #1
ivan.tiran
Форумчанин
 
Аватар для ivan.tiran
 
Регистрация: 24.08.2011
Сообщений: 138
По умолчанию Тест в Delphi, информация считывается из файла.

Доброго времени суток, пишу тест на Delphi. Информация загружается из файла в компонент Memo. В файле находятся как вопросы, так и ответы. Правильные ответы помечены звездочкой в конце. Помогите сделать так, чтоб при нажатии на кнопку "Следующий вопрос", при этом должна быть нажата радиокнопка, соответствующая правильному ответу, правильный ответ заносился в поле Memo3. Ниже сама программа в архиве. Спасибо.

Код:



Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, XPMan, Buttons;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    RadioGroup1: TRadioGroup;
    Memo3: TMemo;
    BitBtn1: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
  procedure povtor;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  z,d,j,i,a:integer;
  LineNo : integer;
  Form1: TForm1;
  some:array[0..9000] of integer;//массив для длин строк
  Rus: array[0..9000, 0..9000] of string;//массив, в котором поэлементно хранятся строки
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  dir:string;
begin
  getdir(0,dir);//переменной dir присваивается дирректория файла
  dir:=dir+'/test.txt';//переменной dir присваивается конечный путь к файлу
  Memo1.Lines.LoadFromFile(dir);//В поле Memo1 загружаются данные из файла
  a:=Memo1.Lines.Count;//в переменную a заносится количество строк в файле
  for i:=0 to a-1 do
  begin
    some[i]:=length(Memo1.Lines[i]);//запись длин каждой строки
    for  j:=0 to some[i]-1 do
      Rus[i,j]:=copy(Memo1.Lines[i],j,length(Memo1.Lines[i]));// копирование строк поэлементно в массив
  end;

  Memo2.Text:=Rus[0,0];//В поле Мемо2 заносится первая строка из файла
  i:=0;
  j:=0;
  povtor;
  d:=1;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  IF d <(a/5) THEN BEGIN
    i:=i+1;
    Memo2.Text:=Rus[i,j];
    povtor;
    d:=d+1;
  END;
end;

procedure TForm1.povtor;
var
  k: integer;
begin
  z:=i;
  k := i mod 5;
  repeat
  k := i mod 5;
  RadioGroup1.Items[k]:=Rus[i+1,j];
  if (Rus[i+1,some[i+1]-1]='.*') or (Rus[i+1,some[i+1]-1]=';*') then
  begin
    RadioGroup1.Items[k]:=copy(RadioGroup1.Items[k],j,pos('*',RadioGroup1.Items[k])-1);//если выполняются верхние условия, то Радио-кнопке присваивается имя до звездочки (звездочка - это индикатор правильного ответа)
    Memo3.Text:=Memo3.Text+RadioGroup1.Items[k];
  end;
  i:=i+1;
  until i=(z+4);
end;

end.
Вложения
Тип файла: rar ТРПП.rar (173.8 Кб, 48 просмотров)

Последний раз редактировалось JTG; 09.09.2011 в 12:29.
ivan.tiran вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Информация о файле (Delphi) VadEr Помощь студентам 6 08.04.2011 02:39
В каком месте файла хранится информация о его структуре hammer4 Помощь студентам 4 20.08.2010 16:11
Почему из файла считывается два значения, если там одно yorik1984 Помощь студентам 3 19.03.2010 01:48
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Нужна информация по работе с Firebird в Delphi 7 (желательно через IBX) Krabik БД в Delphi 3 26.05.2008 03:50