![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с txt
Алеша © (2011-05-17 18:31:00)Доброго времени суток друзья, я новичок в делфи, и по этому наверное бывалый для Вас, но интересный для меня вопрос.
Так вот.
Я написал тест, в нем было всего 4 вопроса и я выполнил его так:
procedure TForm3.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какое значение означает, что все необходимые для обслуживания интерфейса события генерируются программой?';
RadioButton1.Caption:= 'DragCursor';
RadioButton2.Caption:= 'dmManual';
RadioButton3.Caption:= 'dmAutomatic';
RadioButton4.Caption:= 'TDragMode';
Button1.Visible:= false;
Button2.Top:= Button1.Top;
Button2.Left:= Button1.Left;
Button2.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
if RadioButton2.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какое значение означает, что события инициируются свойствами и методами компонентов?';
RadioButton1.Caption:= 'TDragMode';
RadioButton2.Caption:= 'dmManual';
RadioButton3.Caption:= 'dmAutomatic';
RadioButton4.Caption:= 'DragCursor';
Button2.Visible:= false;
Button3.Top:= Button1.Top;
Button3.Left:= Button1.Left;
Button3.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
if RadioButton3.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какой компонент определяет вид указателя мыши в момент, когда над компонентом “протаскиваются данные”?';
RadioButton1.Caption:= 'dmManual';
RadioButton2.Caption:= 'TDragMode';
RadioButton3.Caption:= 'dmAutomatic';
RadioButton4.Caption:= 'DragCursor';
Button3.Visible:= false;
Button4.Top:= Button1.Top;
Button4.Left:= Button1.Left;
Button4.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;
procedure TForm3.Button4Click(Sender: TObject);
begin
if RadioButton4.Checked=true then
ball:= ball+1
else
ball:= ball;
Label1.Caption:='Выбирите, какое свойство компонента TDragState определяет что объект только что покинул компонент или была отпущена кнопка мыши?';
RadioButton1.Caption:= 'dsDragLeave';
RadioButton2.Caption:= 'dsManual';
RadioButton3.Caption:= 'dsDragMove';
RadioButton4.Caption:= 'dsDragEnter';
Button4.Visible:= false;
Button5.Top:= Button1.Top;
Button5.Left:= Button1.Left;
Button5.Visible:= true;
num:= num+1;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
RadioButton1.Checked:= false;
RadioButton2.Checked:= false;
RadioButton3.Checked:= false;
RadioButton4.Checked:= false;
end;
procedure TForm3.Button5Click(Sender: TObject);
begin
if RadioButton1.Checked= true then
ball:= ball+1
else
ball:= ball;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
if (ball <= 5) and (ball>= 4)
then ocen:= 3;
if ball < 4
then ocen:= 2;
Label4.Caption:= IntToStr(ocen);
Form6.Visible:= true;
Form3.Hide;
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
end;
procedure TForm3.FormShow(Sender: TObject);
begin
ball:= 0;
num:=1;
Label2.Caption:= '';
Label4.Caption:= '';
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
Button1.Visible:= true;
Timer1.Enabled:=True;
TimeVal := Time + 1 / (24 * 60);
end;
procedure TForm3.Timer1Timer(Sender: TObject);
var
Temp : TTime;
begin
Temp := TimeVal - Time;
Label7.Caption := TimeToStr(Temp);
if Frac(Temp) <= 0 then begin
ball:= ball;
Label2.Caption:= IntToStr(ball);
Label5.Caption:= 'Вопрос номер: ' + IntToStr(num);
if (ball <= 5) and (ball>= 4)
then ocen:= 3;
if ball < 4
then ocen:= 2;
Label4.Caption:= IntToStr(ocen);
Form6.Visible:= true;
Form3.Hide;
end;
end;
end.
Чтобы Вам не читать зря кратко:
Создал столько кнопок сколько и вопросов и после ответа на вопрос этой же кнопкой скрываются одни поля открываются другие поля с другими вопросами и так далее, короче все примитивно потому что первый раз я все буквально и прямолинейно понял.
Теперь сам вопрос.
У меня теперь задача сделать тест с 70 вопросами, так как делал я это ад - сколько писанины. Вот я и подумал а что если выбирать данные по вопросам вариантам ответов и правильных ключей из txt-файла. Но как это сделать не знаю, Если кто не совсем равнодушный к ночевкам помогите пожалуйста, желательно на примерах, чтоб до меня дошло быстрей и я Вас уважаемые знатоки не дергал по пустякам. Спасибо за внимание. Заранее благодарен всем!!!
P.S. Там в низу нет моего делфи и ОС. У меня Win 7 и Delphi 2007.
Dennis I. Komarov (2011-05-27 09:23:00) [1]
> Число вопросов заранее известно и это число не большое.
> ini тут как раз один из оптимальных вариантов решения.
Сегодня может быть, завтра уже нет, появятся картинки в вопросах, вырианты с не единственными решениями и т.п.
З.Ы. И не надо плоскогубцами забивать гвозди...
Gu (2011-05-27 02:21:00) [2]>> Ini использовать не стоит, т.к. принято что это структура для хранения настроек программы.
Число вопросов заранее известно и это число не большое. ini тут как раз один из оптимальных вариантов решения. xml думаю тут не нужен, т.к. его основное применение - мультиплатформенность и универсальность передачи инфы между приложениями. тулт либо текстовые файлы, либо типизированые, либо простые БД, типа dbf. Вариант с БД можете построить на моем примере, который давал тут: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1304663468&n=3, компонент про который там говорю и его исходник для D7-Xe можно скачать тут: http://turbobit.net/ds4i2djh0p36.html
Dennis I. Komarov (2011-05-25 17:02:00) [3]
> экземпляра класса в Design-time
упс, в run-timе
Dennis I. Komarov (2011-05-25 13:46:00) [4]Ничерта там полезного нету...
1. Разобраться с созданием экземпляра класса в Design-time
2. Определиться, с местом хранения и научиться обрабатывать эти данные. Я рекомендую XML, хотя и простого текста тут хватит за глаза. Ini использовать не стоит, т.к. принято что это структура для хранения настроек программы.
Алеша (2011-05-24 21:53:00) [5]Большое спасибо за исходник, очень помог, спасибо за помощь
Gu (2011-05-20 00:51:00) [6]Я набросал для вас тестовую программку: создает и редактирует ini файл с вопросами и вариантами ответов, проводит по ним тестирование (тестовое).
Написана на D2010, но на вашей дельфе тоже должна открыться.
В тексте сделал коменты на русском для вас. Ini прилагается с 4я вопросами, но можете его удалить и свои вопросы добавить.
Удачи.
Скачать (exe+исходник,485 Кб):
https://rapidshare.com/files/2279153882/GuIniDemo.zip
или
http://www.sendspace.com/file/kstjf9
Dennis I. Komarov (2011-05-19 16:19:00) [7]
> Anatoly Podgoretsky © (19.05.11 16:16) [22]
Не, не забыл... Чего-то сегодня не хотца...
Anatoly Podgoretsky (2011-05-19 16:16:00) [8]> Dennis I. Komarov (19.05.2011 14:57:21) [21]
А про хлеб с маслом и икоркой забыл?
Dennis I. Komarov (2011-05-19 14:57:00) [9]
> Это только обработка ini-файла $100
это только за перевод [12] в паскаль...
10% за работу, остальное за вредность...
> чет за курсовые я мало беру, если это столько стоит
ну ты еще ВАЗ с Мерседесом сравни и удивись...
Алеша (2011-05-19 14:43:00) [10]Это только обработка ini-файла $100, чет за курсовые я мало беру, если это столько стоит)
Dennis I. Komarov (2011-05-19 14:31:00) [11]
> Чего так дешево?
Ну так это за пример только, да и то не осилит...
Anatoly Podgoretsky (2011-05-19 14:10:00) [12]> Dennis I. Komarov (19.05.2011 14:04:17) [17]
Чего так дешево?
Dennis I. Komarov (2011-05-19 14:04:00) [13]$100
Алеша (2011-05-19 13:13:00) [14]Сколько?
Dennis I. Komarov (2011-05-19 12:39:00) [15]Можно, но дорого...
Алеша (2011-05-19 12:33:00) [16]Спасибо, на примере можете отразить?
Jeer (2011-05-19 10:23:00) [17]
> Dennis I. Komarov © (19.05.11 09:03) [12]
Еще надо добавить к Вашему посту, какие кнопки и клавиши ему нажимать :)
Dennis I. Komarov (2011-05-19 09:03:00) [18]Открыть файл
Прочитать строку
Присвоить заголовку лэйбла
Закрыть файл
Алеша (2011-05-19 08:42:00) [19]Еще вопрос, как вывести первую сроку из ini или txt файла в caption лайбла?(это все связанное с типизацией файлов) Спасибо.
Алеша (2011-05-19 08:29:00) [20]
> Например одна программа будет формировать такой файл, а
> вторая брать из него данные и производить опрос.
Здравствуй, я не понял две программы это два модуля?