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

Процедура Assign

Любым другим процедурам ввода-вывода предшествует процедура Assign.

Формат ее заголовка:

Assign (Var F; Name: String)

Здесь F – имя файловой переменной любого типа; Name – выражение строкового типа.

Назначение процедуры – организует связь между конкретным физическим файлом на внешнем устройстве (конкретным набором данных) и файловой переменной программы (логическим файлом) F.

Имя конкретного набора данных определяется переменной Name. Name – это полное имя физического файла. В общем случае оно имеет вид:

<Диск>:\<Имя_каталога>\\<Имя_каталога>\<Имя_файла>

<Диск> задается символом от A до Z (символ логического устройства). Если он опущен, то подразумевается логическое устройство, принятое по умолчанию.

\<Имя_каталога>\\<Имя_каталога>\ - это путь через подкаталоги к фактическому имени файла. Если они опущены, то считается, что файл находится в текущем каталоге.

<Имя_файла> - фактическое имя файла. Оно может иметь максимально 8 символов. Затем может идти уточнение (тип файла) – максимально 3 символа, отделенное от имени точкой.

Например, можно определить такие имена файлов:

Rez Rez.pas Rez.exe Rez.txt Rez.dat

Уточнение помогает программисту, пользователю, системе программирования или операционной системе работать с файлами.

Пример полного имени файла:

A:\Katalog1\Katalog2\Rez.pas

Максимальная длина полного имени файла – 79 символов.

Чтобы связать файловую переменную (логический файл) F с физическим файлом Rez.dat нужно записать процедуру Assign со следующими параметрами:

Assign (F, ‘Rez.dat’);

или организовать связь в диалоге:

Var

St: String;

...

Begin

...

Writeln (‘Введите имя файла’);

Readln (St);

Assign (F, St);

Вместо имени физического файла в качестве параметра Name в списке фактических параметров процедуры Assign может использоваться любое устройство ввода-вывода (клавиатура, печать, дисплей и т. п.) В этом случае Name – это символическое (логическое) имя устройства ввода-вывода.

Для использования доступны следующие символические имена устройств.

  1. Con

Con – устройство консоли (при вводе – это клавиатура, при выводе – экран дисплея).

Например, процедура

Assign (F, ‘Con’);

означает ввод в переменную F с клавиатуры или вывод из F на экран.

По умолчанию стандартные текстовые файлы Input и Output связаны с консолью, что соответствует следующему фрагменту программы:

Assign (Input, ‘Con’);

Assign (Output, ‘Con’);

  1. Lpt1, Lpt2, Lpt3

Lpt1, Lpt2, Lpt3 – устройства печати. Если подключено одно устройство печати, то используется либо имя Lpt1 либо Prn:

Assign (F, ‘Prn’);

Assign (Output, ‘Prn’);

С данными логическими устройствами может использоваться только имя выходного файла.

  1. Com1, Com2

Com1, Com2 – устойства последовательного ввода-вывода, используемые для обмена данными между компьютерами. Вместо Com1 может быть использовано имя ‘Aux’.

  1. Nul

Nul – нулевое устройство. Для него при выводе не осуществляется никаких действий. При попытке чтения возникает ситуация конца файла.

  1. Crt

Crt – устройство текстового ввода-вывода. Аналогично устройству Con, но имеет ряд дополнительных функций управления экраном (например, установка цветов, указание места на экране для вывода и т.п.). Crt не поддерживается операционной системой.

  1. ‘’

‘’ – использование пустой строки вместо имени Name. В этом случае файловая переменная F связывается с Con (по аналогии с пунктом а)). Например,

Assign (F, ‘’);

Процедура Assign всегда предшествует другим процедурам ввода-вывода. Ее нельзя применять к уже открытому файлу.

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