Код: Выделить всё
.........
const
sost: array [0..10] of string[47] = (
'Создание нового вопроса','Создание нового ответа',
'Удаление текущего вопроса','Удаление последнего ответа',
'Просмотр предыдущего вопроса','Просмотр следующего вопроса',
'Вернуться к предыдущему вопросу','Просмотреть следующий вопрос',
'Закончить тестирование','','Сохранить тест и вернуться к окну тестирования');
type
TTest = record //Тип данных используемый для хранения вопроса теста
question: array [1..50,1..91] of char;
answer: array [1..5,1..151] of char;
lines,anscount,true: byte;
pass: array [1..20] of char;
end;
TTestFile = file of TTest; //Тип файла теста
var
Form1: TForm1;
Test: TTestFile;
//Файловая переменная для обращения к файлу теста
CurQuest: ^TTest;
//Переменная для хранения 1 вопроса теста
path: string;
//Переменные для хранения пароля к тесту и пути к файлу теста
Count,Right,TrueCount,CurPos: byte;
rb: array [1..10] of TRadioButton;
ed: array [1..10] of TEdit;
anscount: byte;
..............................
procedure SaveQuestion(var Test: TTestFile; n,k: byte);
//Процедура сохранения вопроса в файл
var
i,j: byte;
s: string;
begin
reset(Test);
seek(test,n);
//Перемещаем указатель в файле в конец
for i:=1 to Form1.Memo1.Lines.Count do
//Преобразовываем текст вопроса в формат пригодный для записи в файл
begin
s:=Form1.Memo1.Lines.Strings[i-1]+#10;
for j:=1 to length(s) do
curquest^.question[i,j]:=s[j];
end;
curquest^.lines:=Form1.Memo1.Lines.Count;
//Запоминаем количество строк в вопросе
for i:=1 to anscount do
begin
//Преобразовываем текст ответов в формат пригодный для записи в файл
s:=ed[i].Text+#10;
for j:=1 to length(s) do
curquest^.answer[i,j]:=s[j];
end;
curquest^.anscount:=anscount;
//Запоминаем количество ответов
curquest^.true:=k;
//Запоминаем правильный ответ
if length(pass)>19 then
//Если длина выбранного пароля превышает допустимую, удаляем лишние литеры
delete(pass,19,length(pass)-19);
pass:=pass+#10;
for i:=1 to length(pass) do
//Преобразовываем пароль в формат пригодный для записи в файл
curquest^.pass[i]:=pass[i];
write(test,curquest^);
//Записываем вопрос в файл
if Form1.Button3.Visible=true
then Form1.GroupBox1.caption:=' Вопрос ('+inttostr(n+2)+'/'+inttostr(filesize(test)+1)+') '
else Form1.GroupBox1.caption:=' Вопрос ('+inttostr(n+1)+'/'+inttostr(filesize(test))+') ';
closefile(test);