assign(f, 'MyFile.dat') – файл находится в текущем каталоге активного диска.
assign(f, 'D:\users\312\MyFile.dat') – где находится файл?.
Имя физического файла должно быть корректным и уникальним.
Процедура Assign не занимается анализом корректности имени файла и безоговорочно связывает заданное имя с логическим файлом (файловой_переменной).
Логический файл при этом считается закрытым, а размер буфера файла – не определенным.
Если файлоавя_переменная связана с некорректным именем, то это вызовет ошибку ввода-вывода только при попытке произвести любое действие над ним.
Связь между файловой переменной и физическим файлом устанавливается один раз и сохраняется до следующего вызова Assign с той же файловой переменной.
Процедура reset открывает существующий физический файл, который был связан с файловой переменной (открывает для чтения):
Reset(файловая_переменная);
Файловый указатель – неявно объявленная переменная, указывающая на тот компонент файла, над которым будет выполнена следующая операция считывания или записи.
В случае выполнения такой операции файловый указатель сдвигается на следующий компонент.
При открытии файла файловый указатель устанавливается на его начало.
Если делается попытка открыть для чтения файл, который не существует, возникает ошибка периода исполнения.
Чтобы предотвратить прерывание программы, вследствие попытки открыть несуществующий файл, используют директиву компилятора {$I-}. Она выключает автоматический контроль ошибок ввода и вывода. Директиву {$I+} используют для включения такого контроля. Если контроль ошибок ввода-вывода выключен, то для проверки наличия файла на диске используют функцию IOResult. Если файл существует эта функция возвращает значение нуль.
Процедура Rewrite создает новый физический файл, имя которого связано с файловой переменной (открывает для записи):
Rewrite (файловая_переменная);
Если такой физический файл уже существует, то он уничтожается, а на его месте создается новый пустой файл.
После использования процедуры Rewriteфайловый указатель устанавливается в его начало.
Процедуры открытия могут применяться многократно до одного и того же файла. Если файл был до этого открыт, то он автоматически закрывается. Между повторными вызовами процедур открытия не обязательно вставлять оператор закрытия файла.