Из опыта создания универсальных тестовых редакторов
{открытие начального окна}
TextBackGround(blue);
clrscr;
Writeln('Какой файл редактировать ');
Readln(a); {ввод пути к редактируемому файлу }
a2:=a;
Window(20,10,66,15); {закрытие начального окна}
TextBackGround(black);
clrscr;
Assign(c,a); {связь переменной с файлом вопросов}
a:=a+'o'; {изменение расширения}
Assign(u,a); {связь переменной с файлом ответов}
delete(a,length(a),1);
a:=a+'1'; {изменение расширения}
Assign(y,a); {создание нового файла вопросов}
delete(a,length(a),1);
a:=a+'2'; {изменение расширения}
Assign(a1,a); {создание нового файла ответов}
Reset(c); {установка и загрузка файлов}
Reset(u);
Rewrite(y);
Rewrite(a1);
Window(5,5,50,20); {окно просмотра файла}
TextBackGround(lightgray);
clrscr;
Writeln('Вывод вопросов через Enter:');
repeat
while not Eoln(c)or(b<>'&') do Begin {просмотр вопросов через
Enter}
Read(c,b);
If b<>'&' Then Write(b);
End;
Readln(c);
Readln;
until EOF(c);
close(c); {перезапуск файла вопросов}
Reset(c);
Window(5,5,50,20); {закрытие окна просмотра файла}
TextBackGround(black);
clrscr;
Window(30,5,58,10); {окно номера редактируемого вопроса}
TextBackGround(yellow);
clrscr;
Read(c,b); {считывание количества вопросов}
Readln(c,b);
d:=ord(b)-ord('0');
Write('№ редактируемого вопроса: ');
repeat
Readln(z); {ввод № вопроса}
If z>d Then Writeln('номер превышает число вопросов'); {проверка
существования номера}
until z<=d;
Window(30,5,58,10); {закрытие окна номера редактируемого вопроса}
TextBackGround(black);
clrscr;
Window(10,10,53,20); {окно вопросов}
TextBackGround(lightgray);
clrscr;
close(c); {перезапуск файла вопросов}
Reset(c);
p:=0;
repeat
while not EOLN(c) do Begin {копирование значений в другой
файл}
Read(c,b);
Write(y,b);
End;
Readln(c);
Writeln(y);
p:=p+1;
until p=z*3; {установка количества копируемых строк}
p:=0;
while not (p=z-1) do Begin {стирание ненужного вопроса}
p:=p+1;
Readln(u,b);
Writeln(a1,b);
End;
while not EOLN(c) do Begin {можно было применить и цикл с
параметром от 0 до 2}
Read(c,b);
Write(b);
End;
Readln(c);
Writeln;
while not EOLN(c) do Begin {вывод редактируемого вопроса на
экран}
Read(c,b);
Write(b);
End;
Readln(c);
Writeln;
while not EOLN(c) do Begin
Read(c,b);
 
| | скачать работу |
Из опыта создания универсальных тестовых редакторов |