Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.11.2010, 11:56
serge(( serge(( вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 8
Репутация: 10
По умолчанию Помогите, новичку составить программу.

Сложилась такая ситуация что надо решить одну задачку, а знаний нет. Прошу вас помочь, хотя бы в правильном направлении подтолкнуть. Скажу сразу, языков программирования не знаю, но могу, почитать и вникнуть, только скажите что именно нужно для решения моей задачи.
Итак, есть два текстовых файла.
Первый текстовый файл это вопросы из теста. В первой строке номер вопроса, во второй сам вопрос. В следующих четырех, это варианты ответа. И с седьмой строки далее, повторяется.
Во втором файле, мы имеем ключи к правильным ответам.
Из этих двух файлов, нужно получить третий текстовый файл в GIFFT формате, далее который будет, импортирован в Moodle.
Все три файла для примера я выложил.
Спасибо за внимание.
Вложения
Тип файла: txt test.txt (347 байт, 11 просмотров)
Тип файла: txt otvet.txt (35 байт, 7 просмотров)
Тип файла: txt rezultat.txt (510 байт, 8 просмотров)

Последний раз редактировалось serge((, 20.11.2010 в 11:31.
Ответить с цитированием
  #2  
Старый 22.11.2010, 08:48
serge(( serge(( вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Актуально)) Хелп
Ответить с цитированием
  #3  
Старый 22.11.2010, 23:18
Аватар для deltas
deltas deltas вне форума
Новичок
 
Регистрация: 22.11.2010
Сообщения: 99
Репутация: 47
По умолчанию

Ну вот, специально сел за Дельфи чтоб помочь человеку... так как мне самому уже несколько дней не отвечают
Сильно не пинайте, написано за 5 минут

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ListBox3: TListBox;
    ListBox4: TListBox;
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
ListBox1.Items.LoadFromFile('test.txt');
ListBox2.Items.LoadFromFile('otvet.txt');
ListBox3.Items.LoadFromFile('rezultat.txt');
end;

procedure TForm1.Button1Click(Sender: TObject);
var t,r,v,d:integer; a:string;
begin
r:=1;d:=1;
for t:=0 to ListBox1.Items.Count-1 do begin
ListBox4.Items.Add('// Начало вопроса: ВопрМножВыбор');
ListBox4.Items.Add(ListBox1.Items.Strings[r]+' {');
a:=Copy(ListBox2.Items.Strings[d],3,1);
label1.Caption:=Label1.Caption+a;
v:=strToInt(a);
if v=1 then begin
ListBox4.Items.Add('='+ListBox1.Items.Strings[r+1]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+2]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+3]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+4]); end;
if v=2 then begin
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+1]);
ListBox4.Items.Add('='+ListBox1.Items.Strings[r+2]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+3]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+4]); end;
if v=3 then begin
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+1]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+2]);
ListBox4.Items.Add('='+ListBox1.Items.Strings[r+3]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+4]); end;
if v=4 then begin
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+1]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+2]);
ListBox4.Items.Add('~'+ListBox1.Items.Strings[r+3]);
ListBox4.Items.Add('='+ListBox1.Items.Strings[r+4]); end;
ListBox4.Items.Add('}');
ListBox4.Items.Add('');
d:=d+1;
r:=r+6;
end;
end;

end.
Ответить с цитированием
  #4  
Старый 22.11.2010, 23:40
Аватар для deltas
deltas deltas вне форума
Новичок
 
Регистрация: 22.11.2010
Сообщения: 99
Репутация: 47
По умолчанию

Вот готовая прога + исходник. Только условие - формат файлов otvet.txt и test.txt не менять!

Сам писал игру типа "О счастливчик!", примерно таким методом сделал... могу поделится исходниками только там компонентов "левых" уйма использовано...
Вложения
Тип файла: rar project.rar (154.2 Кбайт, 6 просмотров)
Ответить с цитированием
  #5  
Старый 23.11.2010, 07:35
serge(( serge(( вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 8
Репутация: 10
По умолчанию Спасибо, что откликнулись.

Большое человеческое спасибо, за то что откликнулись)) Только вопрос, как извлечь результат, так как Ctr+A и Ctrl+C, в окне результата не работает. или что можно, такое добавить, чтобы результат выводился сразу в текстовом формате? Потом еще проблема с большим объемом вопросов. Когда их было 26, то выводился результат 9-ти, а уменя есть списки из 140 вопросов
Ответить с цитированием
  #6  
Старый 23.11.2010, 08:48
serge(( serge(( вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Запись добавил строкой ListBox4.Items.SaveToFile('rezultat.txt');. А вот что за ошибки, пока непонятно. Буду искать)
Ответить с цитированием
  #7  
Старый 23.11.2010, 17:56
serge(( serge(( вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Блин. Я дуб-дубом)) Читаю, и не могу понять. Что там неправильно.
Например что значит строки, Непонятны три

r:=1;d:=1;
for t:=0 to ListBox1.Items.Count-1 do begin

ListBox4.Items.Add('// Начало вопроса: ВопрМножВыбор');
ListBox4.Items.Add(ListBox1.Items.Strings[r]+' {');
a:=Copy(ListBox2.Items.Strings[d],3,1);
v:=strToInt(a);

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

123.1
124.2
125.1
Ответить с цитированием
  #8  
Старый 24.11.2010, 01:15
Аватар для deltas
deltas deltas вне форума
Новичок
 
Регистрация: 22.11.2010
Сообщения: 99
Репутация: 47
По умолчанию

Код:
a:=Copy(ListBox2.Items.Strings[d],3,1);
Здесь происходит копирование значения из строчки в ListBox2 с 3 символа в переменную "а". Вот тут и проблемма так как при "123.1" уже надо
Код:
a:=Copy(ListBox2.Items.Strings[d],4,1);
Можно, например проверять "d"
Код:
if d<99 then a:=Copy(ListBox2.Items.Strings[d],3,1);  if d>99 then a:=Copy(ListBox2.Items.Strings[d],4,1);

Последний раз редактировалось deltas, 24.11.2010 в 01:18.
Ответить с цитированием
  #9  
Старый 24.11.2010, 08:09
serge(( serge(( вне форума
Прохожий
 
Регистрация: 19.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Спасибо.

Цитата:
if d<10 then
a:=Copy(ListBox2.Items.Strings[d],3,1);
if d>9 then if d<100 then
a:=Copy(ListBox2.Items.Strings[d],4,1);
if d>99 then
a:=Copy(ListBox2.Items.Strings[d],5,1);


ну тогда я написал в таком стиле. Вроде как работает)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025