Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TURBO_PASCAL.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
8.23 Mб
Скачать

15.1. Вывод специальных символов

При подключенном модуле CRT можно выводить на дисплей строки и символы, содержащие в себе управляющие коды (коды 0...31). При этом они не будут оказывать управляющие воздействия, а будут изображаться на дисплее, согласно таблице изображений символов по их ASCII-коду. Исключение составляют лишь четыре кода (табл. 15.1):

Таблица 15.1

Код

Управляющее воздействие

Название кода

7

($07)

Вызывает один короткий звук динамика

Bell

8

($08)

Сдвигает текущую позицию курсора влево на один символ, если есть куда сдвинуться в пределах строки; в противном случае не имеет эффекта

BackSpace

(BS)

10

($0A)

Переводит текущее положение курсора на строку ниже, не меняя текущего столбца

Line Feed

(LF)

13

($0D)

Переводит текущее положение курсора в начало строки

Carriage Return

(CR)

{316}

Ниже приводится ряд программ (рис. 15.2 и 15.3), показывающих работу с управляющими символами.

Программа вывода изображений управляющих кодов }

USES CRT; { Используется модуль CRT }

CONST

SpecialChars : Set of Char = [ #7, #8, #10, #13 ];

{ символы из таблицы }

Ch : Char = #0; { переменная-символ }

VAR i : Byte; { параметр цикла }

BEGIN

ClrScr; { очистка экрана }

while Ch < #32 do { цикл по #0...#31 }

begin

for i:=1 to 2 do begin

Write ( ' Код', Ord( Ch ):3, ' -—> ');

if ( Ch in SpecialChars )

then Write ( ' Имеет действие' )

else Write ( Ch:15 );

Ch := Succ( Ch ); { следующий символ }

end; {for}

WriteLn { закрытие строки }

end; { конец цикла while }

Write ( 'Нажмите ввод для окончания ...' );

ReadLn { пауза до нажатия клавиши ввода }

END.

Рис. 15.2

{Программа использования 4-х управляющих кодов экрана }

USES CRT; { используется модуль CRT }

VAR i : Byte; { переменная для цикла }

BEGIN

ClrScr; { очистка всего экрана }

WriteLn ( 'Нажимайте клавишу ввода для продолжения' );

ReadLn;

WriteLn ( ' Эффект от кода 7 - короткий звук'#7 );

WriteLn; WriteLn; ReadLn;

WriteLn ( ' Демонстрация кода возврата - #8 (BS)' );

for i:=1 to 40 do Write('/'); { 40 правых косых скобок }

for i:=1 to 40 do begin

Delay ( 100); { задержка в 100 мс }

Write ( #8, '\', #8 ); { Передвижение на символ }

{ влево, замена на '\' и снова один сдвиг влево }

Рис. 15.3 {317}

end; {for}

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 (окончание)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]