Присоединение файлов

Операции ввода-вывода в системе Турбо Паскаль выполняются, как правило, с использованием разнообразных стандартных подпрограмм, в которых файлы идентифицируются посредством соответствующих файловых переменных. Таким образом, прежде чем обратиться к любому конкретному внешнему файлу или логическому устройству, необходимо связать с ним некоторую файловую переменную. Эта связь устанавливается с помощью процедуры Assign (эссайн), вызов которой осуществляется следующим образом:

Assign(<имя>, <файл>);

Здесь <имя> - имя файловой переменной, <файл> - строковое выражение, задающее имя логического устройства или файла. Последний может уже существовать на диске либо создаваться заново. Исключением из правила являются зарезервированные файловые переменные типа Text, Input и Output, которые автоматически связываются с двумя логическими устройствами: первая - с клавиатурой, вторая - с дисплеем. Более того, эти переменные можно не указывать при вызове стандартных подпрограмм текстового ввода-вывода, где их имена подразумеваются по умолчанию. Для остальных файловых переменных их связи с файлами или логическими устройствами должны устанавливаться явным образом. При обращении к процедуре Assign аргумент <файл> задается обычно в виде строковой константы, содержащей спецификацию файла стандартного для MS DOS формата:

< маршрут > < имя >. < расширение >

Приведем пример объявления файловой переменной MyFile и установления ее связи с внешним файлом Data.dat, расположенном на диске D: в каталоге TP:

Var MyFile: File of Integer;

Assign(MyFi1e,'D:\TP\Data.dat');

В тех случаях, когда необходимо присоединить несколько файлов из одного каталога, маршрут бывает удобно представить в виде отдельной константы и объединять ее с именами файлов:

Const

Path = 'D:\TP\′;

Var

MyFilel, MyFi1e2: File of Real;

Assign(MyFilel, Path + 'Datal.dat');

Assign(MyFile2, Path + 'Data2.dat');

Для обозначения стандартных устройств ввода-вывода в системе Turbo Pascal зарезервированы имена, аналогичные принятым в операционной системе MS DOS. Кроме устройств DOS, Turbo Pascal поддерживает нестандартные логические устройства для ввода-вывода текстовых файлов, не имеющие зарезервированных имен.

Устройство CON. Именем CON обозначается консоль - логическое устройство, объединяющее клавиатуру и дисплей. Выбор конкретного из этих двух устройств осуществляется автоматически, в зависимости от вида выполняемой операции: при выводе информации она передается на дисплей, а при вводе принимается с клавиатуры. Если стандартным текстовым переменным Input и Output с помощью процедуры Assign не поставлены в соответствие другие устройства или внешние файлы, эти переменные автоматически связываются с устройством CON. К этому же устройству приписываются безымянные файлы, которым при вызове процедуры Assign присвоено пустое имя (строка, не содержащая ни одного символа). Вводимая через устройство CON (с клавиатуры) информация посимвольно заносится в буфер и одновременно воспроизводится на дисплее (эхо-вывод). Наличие буфера и эхо-вывода позволяет корректировать введенные символы, используя средства редактирования операционной системы. Информация считывается из буфера и передается в программу в виде строки только после нажатия клавиши Enter. Когда буфер таким образом опустошен, считается, что вводимая далее группа символов, ограниченная новым нажатием на клавишу Enter, относится к следующей строке и т.д. Выводимая через устройство CON (на дисплей) информация воспроизводится на экране также построчно в формате, определяемом логикой программы.

Устройства LPT1 (PRN), LPT2, LPT3. Имя LPT1 закреплено за принтером - устройством построчной печати. В качестве псевдонима LPT1 может также применяться стандартное имя PRN. Имена LPT2 и LPT3 резервируются для обозначения двух дополнительных принтеров (всего в составе комплекса может быть до трех печатающих устройств). Для работы с принтером целесообразно использовать стандартный программный модуль Printer. В нем описывается стандартная файловая переменная Lst текстового типа и устанавливается ее связь с устройством LPT1. Подключив к программе посредством директивы Uses модуль Printer, можно выводить данные на печать с помощью стандартных процедур Write и WriteLn, исходно предназначенных для вывода информации на дисплей. Чтобы перенаправить информацию вместо дисплея на принтер, достаточно в этих процедурах указать переменную Lst, например:

Program p14_1;

Uses Printer;

Begin

Write(Lst, ′Проверка принтера');

End.

Устройства СОМ1 (AUX) и COM2. Именами СОМ1 и COM2 обозначаются два последовательных порта ввода-вывода, которыми обычно комплектуются компьютеры типа IBM PC. Эти порты предназначены для связи с другими компьютерами и подключения дополнительных внешних устройств. Вместо имени СОМ1 можно использовать его псевдоним AUX.

Устройство NUL. Имя NUL зарезервировано за фиктивным логическим устройством, допускающим как ввод, так и вывод информации. При выводе записи на это устройство не происходит никаких событий, а при попытке ввода генерируется признак конца файла EOF (End Of File). Устройство NUL специально предназначено для использования при разработке и отладке программ, чтобы можно было проверять их логику, не создавая реальных файлов.

Как указывалось выше, устройства, предназначенные для ввода-вывода текстовой информации, могут обозначаться логическими именами, отличающимися от зарезервированных. Их используют для работы с устройствами, которые не поддерживает система MS DOS, а также для организации нестандартных режимов на стандартных устройствах DOS с помощью специальных драйверов. Примером последнего является логическое устройство CRT, реализованное в стандартном модуле Crt. Это устройство, подобно CON, обеспечивает интерфейс с клавиатурой и дисплеем, но обладает большим быстродействием по сравнению с CON и поддерживает эффективные средства работы с цветами и окнами. Связь файловой переменной с устройством CRT устанавливается с помощью подпрограммы AssignCRT, описанной в модуле Crt.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: