| WriteLn; WriteLn; ReadLn;
| WriteLn ('Демонстрация кода разрыва строки - f10(LF)');
| WriteLn;
| Write('Эта '#10'строка '#10'разорвана '#10'кодами 10');
| Writeln( #10#10 ); ReadLn;
| WriteLn ('Работа с кодом возврата каретки - #13'#10);
| for i:=1 to 40 do Write('/'); { 40 правых косых скобок }
| Write ( #13 ); {перевод курсора в начало }
| for i:=1 to 40 do begin
| Delay ( 100 ); { задержка в 100 мс }
| Write ( '\'); { поочередная печать '\' }
| end; { конец цикла }
| WriteLn; ReadLn { пауза до нажатия клавиши ввода }
| END
Рис. 15.3 (окончание)
15.2. Модификация операторов Read, ReadLn
Операторы Read и ReadLn считывают поступающую информацию по строкам. Так, при вводе с клавиатуры, информация уходит на обработку только после ввода кода закрытия строки (а он вырабатывается клавишей Enter или Return).
При наборе на клавиатуре вводимые символы отображаются на дисплее, а их коды запоминаются в специальном буфере и передаются на обработку только после нажатия клавиши ввода. Пока строка символов не введена, ее можно редактировать, используя клавишу удаления символов Backspace.
После подключения модуля CRT набор клавиш редактирования расширяется комбинациями и клавишами, приведенными в табл. 15.2.
Таблица 15.2
Клавиша или комбинация | Действие |
Esc | Стирает все символы в строке ввода |
Ctrl+A | Дублирует клавишу Esc |
Ctrl+S | Дублирует клавишу BackSpace |
- 319 -
Ctrl+D | Вызывает очередной символ из введенной ранее, но стертой строки ввода |
Ctrl+F | Вызывает всю стертую ранее строку ввода |
Ctrl+Z | Вводит строку (заканчивает ввод) и вырабатывает признак конца файла, если значение системной переменной модуля CRT CheckEOF=True (см. разд. 15.3.2.2) |
Комбинация клавиш Ctrl+Z может быть весьма полезна при создании файлов на диске непосредственным вводом с клавиатуры.
Далее речь пойдет о дополнительных возможностях модуля CRT и реализуемых в нем процедурах и функциях.
15.3. Системные переменные модуля CRT
При подключении модуля CRT инициализируется ряд его системных констант и переменных. Константы используются как параметры в процедурах модуля CRT. Системные же переменные играют роль переключателей режимов работы механизмов ввода-вывода, реализованных в CRT.
И константы, и переменные становятся глобальными и доступными программе, использующей модуль CRT, и их не надо описывать среди прочих идентификаторов. Так, например, в модуле CRT определена переменная DirectVideo типа Boolean, и ее стартовое значение равно True. Если надо сменить определяемый ею режим работы устройства CRT, то необходимо вставить в программу строку
USES CRT; { модуль CRT подключен }
... { раздел прочих описаний }
BEGIN
DirectVideo := False ; { <-— смена режима CRT }
... { собственно программа }
END.
Но если определить в программе такую же переменную, то доступ к оригиналу из CRT будет заблокирован. Теперь, чтобы все-таки сменить значение системной переменной, надо указывать ее принадлежность в виде определяющего поля:
- 320 -
USES CRT; { Модуль CRT подключен. }
VAR
DirectVideo : Boolean ; { Переопределение системной }
{ переменной. Тип может быть и любым другим }
BEGIN
DirectVideo := False ; { не влияет на работу CRT }
CRT.DirectVideo := False; { Режим работы CRT меняется. }
END.
В модуле CRT предопределены восемь идентификаторов (табл. 15.3)
Таблица 15.3