Иллюстрированный самоучитель по Турбо Паскалю
Логические устройства
Стандартные аппаратные средства ПК, такие как клавиатура, экран дисплея,
печатающее устройство (принтер) и коммуникационные каналы ввода-вывода,
определяются в Турбо Паскале специальными именами, которые называются
логическими устройствами. Все они в Турбо Паскале рассматриваются как
потенциальные источники или приемники текстовой информации.
CON - логическое имя, которое определяет консоль - клавиатуру или экран
дисплея. Турбо Паскаль устанавливает различие между этими физическими
устройствами по направлению передачи данных: чтение данных возможно только с
клавиатуры, а запись - только на экран. Таким образом, с помощью логического
устройства CON нельзя, например, прочитать данные с экрана ПК, хотя такая
аппаратная возможность существует.
Ввод с клавиатуры буферируется: символы по мере нажатия на клавиши помещаются
в специальный строковый буфер, который передается программе только после нажатия
на клавишу Enter. Буферизация ввода обеспечивает возможность редактирования
вводимой строки стандартными средствами ДОС. При вводе символов осуществляется
их эхо-повтор на экране ПК. В Турбо Паскале можно прочитать любой символ
клавиатуры, в том числе и символ CR, вырабатываемый клавишей Enter, сразу после
нажатия на соответствующую клавишу без эхо-повтора.
PRN - логическое имя принтера. Если к ПК подключено несколько принтеров,
доступ к ним осуществляется по логическим именам
LPT1, LPT2 и LPT3 . Имена PRN и
LPT1 первоначально - синонимы. Средствами ДОС можно присвоить имя
PRN любому
другому логическому устройству, способному принимать информацию.
Стандартный библиотечный модуль
PRINTER, входящий в библиотеку TURBO.TPL,
объявляет имя файловой переменной LST и связывает его с логическим
устройством LPT1. Это дает возможность использовать простое обращение к
принтеру. Например, программа
Uses Printer;
begin
WriteLn(LST, 'Привет, мир!')
end.
выведет на принтер фразу «Привет, мир!», а все необходимые операции по
открытию логического устройства выполнит библиотечный блок
PRINTER (подробности
работы с модулями см. в гл. 9).
AUX - логическое имя коммуникационного канала, который обычно используется
для связи ПК с другими машинами. Коммуникационный канал может осуществлять и
прием, и передачу данных, однако в программе в каждый момент времени ему можно
назначить только одну из этих функций. Как правило, в составе ПК имеются два
коммуникационных канала, которым даются имена логических устройств
СОМ1 и COM2.
Первоначально имена AUX и СОМ1 - синонимы.
NUL - логическое имя «пустого» устройства. Это устройство чаще всего
используется в отладочном режиме и трактуется как устройство-приемник информации
неограниченной емкости. При обращении к NUL как источнику информации выдается
признак конца файла EOF.
Связывание логического устройства с файловой переменной осуществляется
процедурой ASSIGN, например:
var
fi,fo : text;
begin
assign(fi,'AUX');
assign(fо,'LPT2');
end.
Турбо Паскаль никогда не связывает имена логических устройств с дисковыми
файлами, в этом смысле эти имена можно считать зарезервированными. Иными
словами, нельзя, например, обратиться к дисковому файлу с именем
PRN, так как
Турбо Паскаль всегда интерпретирует такой запрос как обращение к принтеру.