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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2010, 00:18   #1
fen1ksss
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 44
По умолчанию Тест на Delphi. Работа с файлами

Задача: разработать тестирование с возможностью добавления вопросов, все мои вопросы с вариантами ответов должны содержаться в файле

Такой вопрос, если я буду использовать типизированный тип файлов, можно ли как то в одном файле создать несколько записей (или что вроде того) и по очереди к ним обращаться, чтобы брать вопросы?

спасибо
fen1ksss вне форума Ответить с цитированием
Старый 23.11.2010, 02:06   #2
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

я делал что-то похожее. у меня все вопросы хранились в одном файле. и ответы тоже были в этом же файле. просто нужно придумать разделитель, по которому ты будешь отличать вопрос это или ответ.
R_G вне форума Ответить с цитированием
Старый 23.11.2010, 06:04   #3
W.i.d.g.e.t.1
Пользователь
 
Аватар для W.i.d.g.e.t.1
 
Регистрация: 09.07.2010
Сообщений: 65
По умолчанию

Текстовый файл на пк, на форму мемо кидаешь и радиокнопки. И условия ставишь на событие клацания баттона.
а в конце окажется, что все проблемы были из-за дивана, что стоял не по фэн-шую...
W.i.d.g.e.t.1 вне форума Ответить с цитированием
Старый 23.11.2010, 06:51   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

2 fen1ksss
Можно и через типизированный файл, но есть одно НО. Вопросы и ответы имеют разную длинну, да и кол-во предлагаемых ответов может быдть разным. А при чтении из типизированного фыйла считываются куски одинаковой длины.

Я бы порекомендовал ini-файлы. С ними очень просто работать.
Sibedir вне форума Ответить с цитированием
Старый 23.11.2010, 10:41   #5
fen1ksss
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от R_G Посмотреть сообщение
я делал что-то похожее. у меня все вопросы хранились в одном файле. и ответы тоже были в этом же файле. просто нужно придумать разделитель, по которому ты будешь отличать вопрос это или ответ.
ну допустим можно записывать в таком виде
(1)
кто был... ?
а) А
б) Б
в) В

и просто через TStringlist обращаться по очереди к этим строчкам

Тогда какой процедурой осуществлять поиск по файлу, чтобы найти строку (1) ?
fen1ksss вне форума Ответить с цитированием
Старый 23.11.2010, 10:45   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Тогда какой процедурой осуществлять поиск по файлу, чтобы найти строку (1) ?
Вот вот. А в ini-файлах это все уже готово.

Добавил ------------------------------------------
http://www.programmersforum.ru/showthread.php?t=99811

Последний раз редактировалось Sibedir; 23.11.2010 в 10:55.
Sibedir вне форума Ответить с цитированием
Старый 23.11.2010, 17:47   #7
fen1ksss
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Вот вот. А в ini-файлах это все уже готово.

Добавил ------------------------------------------
http://www.programmersforum.ru/showthread.php?t=99811
спасибо
а вывод из ini файла
Код:
IniF:=TIniFile.Create('\123.INI');
Edit1.Text:=IniF.ReadString('Vopros1','Vopros', V.Vopros);
выдает такую ошибку
First chance exception at $7C812AEB. Exception class EAccessViolation with message 'Access violation at address 7C832BDD in module 'kernel32.dll'. Read of address 5B5EC68B'. Process Project1.exe (224)

в таком виде? в чем ошибка?

и как осуществлять поиск нужного мне вопроса?

Последний раз редактировалось fen1ksss; 23.11.2010 в 18:28.
fen1ksss вне форума Ответить с цитированием
Старый 23.11.2010, 23:07   #8
fen1ksss
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 44
По умолчанию

Во всем разобрался, всем спасибо
fen1ksss вне форума Ответить с цитированием
Старый 26.11.2010, 07:32   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от fen1ksss
вот смотри, твоя программка

допустим я ввел вопрос и ответы, нажал добавить, потом еще раз. теперь в Listbox у меня 2 строки, как сделать так, чтобы при выборе одной из них варианты ответов,относящиеся к этой строке загружались обратно в мемо? мне это нужно, чтобы вопросы загружать из файла, редактировать, а потом обратно сохранять.

вот что написал

Код:
var
   s1, s2: String;
begin
  if OpenDialog1.Execute then begin
    IniF := TIniFile.Create (OpenDialog1.FileName);
    V := TVopros.Create;
    Edit3.Text:=IntToStr(IniF.ReadInteger ('Задать столько вопросов', 'Количество', 0));
    for i := 1 to IniF.ReadInteger ('Всего вопросов', 'Количество', 0) do begin
      s1 := 'Вопрос №' + IntToStr(i);
      V.Vopros:=IniF.ReadString (s1, 'Вопрос', '');
      ListBox1.Items.AddObject (V.Vopros, V);
    end;
      if ListBox1.Selected[1]=true then i:=ListBox1.ItemIndex ;  ?????
      s1 := 'Вопрос №' + IntToStr(i);
      for j := 1 to IniF.ReadInteger (s1, 'Количество ответов', 0) do begin
        s2 := 'Ответ №' + IntToStr(j);
        Memo1.Lines[j-1]:=IniF.ReadString (s1, s2, '');
      end;
    Edit2.Text:=IntToStr(Inif.ReadInteger (s1, 'true', 0));
    IniF.Free;
  end;
end;
как вот это действие правильно выполнить
if ListBox1.Selected[1]=true then i:=ListBox1.ItemIndex ; ?

или я не по тому пути пошел?
спасибо
Отвечаю тут
Доработал программку. Теперь она и сохраняет и загружает и редактирует.
INI-файлы.zip

P.S.: fen1ksss, это не тот вопрос ради которого стоит писать в личку. Форум носит просветительских характер, так сказать, для всех. Пусть другие тоже смотрят. Может кому еще пригодится.

Последний раз редактировалось Sibedir; 26.11.2010 в 11:57.
Sibedir вне форума Ответить с цитированием
Старый 26.11.2010, 14:17   #10
fen1ksss
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Отвечаю тут
Доработал программку. Теперь она и сохраняет и загружает и редактирует.
Вложение 32478

P.S.: fen1ksss, это не тот вопрос ради которого стоит писать в личку. Форум носит просветительских характер, так сказать, для всех. Пусть другие тоже смотрят. Может кому еще пригодится.
без проблем. спасибо
fen1ksss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами в Delphi 7 NeAlSe Помощь студентам 11 19.11.2010 17:08
Delphi работа с файлами. santaIsAbsent Общие вопросы Delphi 0 06.09.2010 11:20
Работа с файлами в Delphi StudentFIU Помощь студентам 0 01.06.2010 21:22
Delphi 7. Работа с файлами Flame_of_Death Помощь студентам 8 10.07.2009 12:25