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 ); { удаление файла с диска }
После того как логический файл связан с физическим, его можно открыть для чтения или записи.