Прежде чем начать работать с внешним файлом, необходимо его связать с файловой переменной. Для этого используется процедура
ASSIGN(var f; name:string),
где f – переменная любого файлового типа,
name – полное имя внешнего файла, удовлетворяющее требованиям операционной системы:
• имя содержит до восьми разрешенных символов; разрешенные символы - это прописные и строчные латинские буквы, цифры, и символы: ! @ # $ % ^ & ( ) ' ~ - _
• имя начинается с любого разрешенного символа;
• за именем может следовать расширение - последовательность до трех разрешенных символов (расширение, если оно есть, отделяется от имени точкой).
Перед именем может указываться так называемый путь к файлу: имя диска и/или имя текущего каталога и имена каталогов вышестоящих уровней. Имя диска - это один из символов A...Z, после которого ставится двоеточие. Имена А: и В: относятся к дисковым накопителям на гибких дискетах, имена С:, D: и т.д. - к жестким дискам. Если имя диска не указано, подразумевается устройство по умолчанию - то, которое было установлено в операционной системе перед началом работы программы.
За именем диска может указываться имя каталога, содержащего файл. Если имени каталога предшествует обратная косая черта, то путь к файлу начинается из корневого каталога, если черты нет - из текущего каталога, установленного в системе по умолчанию. За именем каталога может следовать одно или несколько имен каталогов нижнего уровня. Каждому из них должна предшествовать обратная косая черта. Весь путь к файлу отделяется от имени файла обратной косой чертой. Максимальная длина имени вместе с путем - 79 символов.
Пример: “C:\temp\f2.txt”
Если строка имени пустая, осуществляется связь со стандартным файлом ввода или ввода (как, правило, консолью).
Недопустимо использовать ASSIGN для уже открытого файла. Для этого этот файл нужно закрыть (close). Кроме файла в процедуре ASSIGN можно указать другие устройства.
CON - логическое имя, которое определяет консоль - клавиатуру или экран дисплея. Турбо Паскаль устанавливает различие между этими физическими устройствами по направлению передачи данных: чтение данных возможно только с клавиатуры, а запись - только на экран.
PRN - логическое имя принтера. Если к ПК подключено несколько принтеров, доступ к ним осуществляется по логическим именам LPT1, LPT2 и LPT3 . Имена PRN и LPT1 первоначально - синонимы. Стандартный библиотечный модуль PRINTER, входящий в библиотеку TURBO.TPL, объявляет имя файловой переменной LST и связывает его с логическим устройством LPT1. Это дает возможность использовать простое обращение к принтеру. Например, программа
Uses Printer;
begin
WriteLn(LST, 'Привет, мир!')
end.
выведет на принтер фразу «Привет, мир!», а все необходимые операции по открытию логического устройства выполнит библиотечный блок PRINTER
NUL - логическое имя «пустого» устройства. Это устройство чаще всего используется в отладочном режиме и трактуется как устройство-приемник информации неограниченной емкости. При обращении к NUL как источнику информации выдается признак конца файла EOF.
Пример:
ASSIGN (f,’data.txt’); Reset(f);
ASSIGN (Input,’Con’); Reset(Input);
ASSIGN (Output,’Con’); Rewrite(Output);
ASSIGN (Lst, ‘Lpt1’); Rewrite(Lst);
где: Con – конс. устройство ввода/вывода.
Lpt1 – устройство вывода символов на экран.
Далее файл можно открыть на чтение (Reset) или на запись (rewrite).
Для работы с файлами в ТР разработан ряд процедур и функций, часть из которых рассмотрим ниже. |