Ответы на экзаменационные вопросы № 1-34 по дисциплине "Программирование" (Средства модульного программирования в системе Турбо-Паскаль. ООП. Объекты в динамической памяти), страница 11

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

Заголовок процедуры Assign выглядит следующим образом:  

 Assign (<имя файловой переменной>, <имя файла>);   где <имя файловой переменной> – имя файловой переменной любого вида, с которой ассоциируется файл с диска, имеющий имя <имя файла> .   Обобщенный вид имени файла, которое строится по правилам имен операционной системы MS DOS, выглядит так:    <диск>:\<путь>\<имя_файла>

В качестве параметра процедуры Assign вместо имени файла с диска можно использовать зарезервированное за некоторым устройством имя. В MS DOS основным аппаратным средствам ПК присвоены символические имена, которые можно использовать в операциях ввода/вывода вместо имен файлов.  

CON – символическое имя консоли. Под консолью подразумеваются одновременно и клавиатура, и монитор компьютера. Логическое имя CON можно указать для процедуры Assign вместо имени файла; когда информацию требуется ввести с клавиатуры или вывести на экран. Система по выполняемой операции определяет, с клавиатурой или монитором ей следует иметь дело в том или ином случае. Вывести данные можно на экран, но не на клавиатуру, а ввести только с клавиатуры.  

PRN – символическое имя принтера. Его можно указать в качестве параметра процедуры Assign (вместо имени файла), когда требуется распечатать информацию на принтере. Если к одному компьютеру подключено несколько принтеров, в MS DOS для принтеров предусмотрены следующие символические имена: LPT1, LPT2, LPT3, (причем имена PRN и LPT1 взаимозаменяемые или синонимы).       

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

2.1.2.Открытие файлов.  

Для открытия файлов предназначены процедуры: Reset, Rewrite и Append. Причем если процедуры Reset и Rewrite подходят для открытия файла любого вида, то с помощью процедуры Append можно открыть только текстовый файл.      

1)       

Reset(<имя файловой переменной>);      

Процедура Reset , примененная к текстовому файлу, открывает его только для чтения, а к типизированному или нетипизированному файлу, открывает его как для чтения, так и для записи.   

Файл, открываемый с помощью процедуры Reset, должен уже существовать. Если файла с таким именем и в указанном каталоге не окажется, будет выдано сообщение об ошибке.       

После открытия файла с помощью процедуры Reset указатель текущей позиции расположен перед первым элементом.  

2)       

Rewrite(<имя файловой переменной>);   

Процедура Rewrite, примененная к текстовому файлу, открывает его только для записи, а к типизированному или нетипизированному файлу, открывает его как для чтения, так и для записи.   

Замечание. Если процедуру Reset применить к несуществующему файлу, будет выдано сообщение об ошибке, а процедура Rewrite в этом случае создаст новый файл. Если же процедуру Reset применить к существующему на диске файлу, файл будет открыт, а процедура Rewrite при этом удалит содержимое старого файла и создаст новый файл с тем же именем.       

После применения процедуры Rewrite открывается пустой файл, в котором указатель текущей позиции расположен перед маркером конца файла.

2.2. Организация ввода/вывода в файле.