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 ); { удаление файла с диска }
После того как логический файл связан с физическим, его можно открыть для чтения или записи.
Процедуры открытия файлов Reset(VAR f) и Rewrite(VAR f) открывают логический файл f для чтения данных (Reset) или записи (Rewrite). Если процедуры выполняются успешн6о (открытие файла происходит без ошибки), то файл становится открытым и готов к чтению или записи первого элемента в нем. Эти же процедуры фиксируют размер буфера файла (он устанавливается автоматически, если только не был переопределен вызовом SetTextBuf для файлов типа Text или расширенной записью Reset/Rewrite для бестиповых файлов).
После открытия файла (и только после него!) становится возможным чтение или запись данных. Процедуры открытия могут применяться многократно к одном и тому же файлу. Если файл был до этого открыт, то он автоматически предварительно закрывается. Повторный вызов Reset переустановит последовательность чтения вновь на самый первый элемент файла, при этом потеря данных исключена. Но повторное обращение к Rewrite сотрет текущее содержимое файла и подготовит файл к заполнению с первого элемента. Между повторными вызовами процедур открытия не обязательно вставлять оператор закрытия файла Close. Советуем также внимательно просмотреть разд. 12.11 «Обработка ошибок ввода-вывода».