12.5.1. Связывание файлов

Процедура Assign (VAR f; FileName: String) устанавливает связь между логическим файлом, описываемым файловой переменной f любого файлового типа, и конкретным файлом MS-DOS, название которого содержится в строковом параметре FileName. Иными словами, логический файл f связывается с физическим файлом FileName. Строка FileName может содержать имя файла на диске (в том числе полное имя файла), имя стандартного устройства MS-DOS ('CON', PRN' и т.п.) или пустую строку '':

Assign( f, 'file.dat' ); {связь с файлом текущего каталога }

Assign( f, 'a:x.pas' ); {связь с файлом x.pas на диске А: }

Assign(' f, 'LPT2' ); {связь со вторым принтером ПЭВМ }

Assign( f, ' ' ); {связь со стандартным файлом, как правило файлом 'CON' }

Имя физического файла должно быть корректным и уникальным. Нельзя вставлять символы шаблонов '*' и '?' в имя файла, но можно связывать файловые переменные с еще не существующими файлами на диске (для дальнейшего их создания).

Процедура Assign не занимается анализом корректности имени файла и безоговорочно связывает заданное имя с логическим файлом f. Логический файл при этом считается закрытым, а размер буфера файла — неопределенным. Если файл f связан с некорректным именем, то это вызовет ошибку ввода-вывода лишь при попытке произвести любое действие над ним (будь то открытие файла, удаление его или что-либо другое).

Будучи однажды установленной, связь между файловой переменной f и физическим файлом сохраняется до следующего вызова Assign с той же переменной f. Это означает, что можно проделывать различные операции с файлом f, лишь единожды связав его с физическим файлом:

- 227 -

Assign( f, 'TEST.TMP' ); { установлена связь }

Rewrite( f ); { открытие файла для перезаписи }

Write( f, ...); { запись в файл f }

Close( f ); { закрытие файла (вызов необязателен) }

Reset( f ); { открытие файла для чтения }

Read( f, ...); { чтение из файла f }

Close( f ); { закрытие файла (вызов обязателен) }

Erase( f ); { удаление файла с диска }

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