Assign в паскале что это
Здесь мы познакомимся с операциями, подготавливающие и завершающие работу с файлами.
Данные операции устанавливают/разрывают связь между файлом и программой, использующей этот файл, а также делают доступными программе элементы файла (открывают файл). Перечислим эти операции.
1. Процедура Assign служит для установления связи между файлом и файловой переменной. Может оказаться, что в программе нужно организовать работу одновременно с несколькими файлами. Естественно, в этом случае описываются несколько файловых переменных. Установкой соответствия между файлом и файловой переменной как раз «занимается» данная процедура. Ее общий вид:
Например, после выполнения следующей конструкции: Assign(k,’PR.DAT’); переменная k будет «связана» с файлом PR.DAT , то есть, указывая имя этой переменной, мы будем осуществлять работу с файлом PR.DAT .
2. Процедура Reset открывает файл для работы, то есть элементы файла становятся доступными программе. После выполнения процедуры Assign программа не может обращаться к элементам файла: они для нее еще «закрыты». Для «открытия» файлов как раз используется указанная процедура. Ее общий вид:
Например, после выполнения конструкции Reset (k); открывается файл PR.DAT (с учетом результата выполнения процедуры Assign ).
3. Процедура Rewrite также открывает файл для работы (для чтения/записи элементов). Зачем еще одна аналогичная процедура? Чем она отличается от предыдущей?
Процедура Rewrite перед открытием файла пересоздаёт его (удаляет, если он был создан ранее, и создаёт снова), а процедура Reset предназначена для открытия уже существующего файла (при обращении к несуществующему файлу будет выдано сообщение об ошибке). Таким образом, результатом работы процедуры Rewrite будет открытие вновь созданного файла , а процедуры Reset — открытие существующего файла .
Например, после выполнения конструкции Rewrite (k); пересоздаётся файл PR.DAT (с учетом результата выполнения процедуры Assign ).
4. Процедура Close предназначена для закрытия файлов, то есть она «запирает» файл, и его элементы становятся недоступными программе. Общий вид этой процедуры:
Например, после выполнения процедуры Close(k); элементы файла PR.DAT становятся недоступными программе.
Замечание . Перед завершением работы программы желательно закрывать все открытые файлы с целью сохранения находящейся там информации.
На следующем шаге после изучения процедур ввода/вывода информации мы продемонстрируем использование рассмотренных на этом шаге процедур.
Процедура Assign Pascal-Паскаль
Assign — Назначает файловой переменной имя внешнего файла.
| Объявление: | Procedure Assign(Var F; Name : String); |
|---|---|
| Режим: | Windows, Real, Protected |
Замечания:
Параметр F — файловая переменная любого файлового типа, а Name — выражение со строковым типом или выражение типа PChar, если допускается расширенный синтаксис. Все дальнейшие операции с переменной F на самом деле происходят с внешним файлом с именем Name.
После обращения к Assign, связь между переменной F и внешним файлом продолжает существовать до тех пор, пока для переменной F не будет сделано еще одно переназначение.
Имя файла состоит из пути — нулевого или большего количества имен каталогов, разделенных левыми наклонными чертами, сопровождаемого собственно именем файла:
Пример указания пути для процедуры Assign
Если путь начинается с левой наклонной черты, то он находится в корневом каталоге, иначе, он находится в текущем каталоге.
Drive — идентификатор дисковода (A-Z). Если Drive и двоеточие опущены, то используется заданный по умолчанию дисковод. \DirName\. \DirName — корневой каталог и подкаталоги в пути к файлу. Имя файла состоит из имени, длиной до восьми символов, возможно сопровождаемых точкой и расширения, длиной до трех символов. Максимальная длина всего имени файла вместе с путем — 79 символов.
Если String — пустая строка, то есть когда Length(Name) равно нулю, то возникает специальный случай и переменная F становится связанной со стандартным файлом ввода или вывода. Эти специальные файлы позволяют программе использовать возможность операционной системы DOS — возможность переназначения ввода/вывода.
Если переменной F назначено пустое имя, то после обращения к Reset(F), F относится к стандартному устройству ввода, а после обращения к ReWrite(F), F относится к стандартному устройству вывода.
Процедура Assign
Процедура Assign в Паскале связывает переменную с файлом. Синтаксис:
Как связать файл с переменной в Паскале
Процедура Assign связывает переменную F с файлом какого-либо типа. После этого в программе можно использовать переменную F для работы с указанным файлом.
Вызов процедуры Assign не открывает файл, а только связывает имя файловой переменной F с файлом на диске. При этом файл отмечается как закрытый.
Как видно из синтаксиса процедуры, файл может быть как типизированным, так и не типизированным.
Как объявить файловую переменную
Перед вызовом процедуры файловая переменная, которая передаётся в процедуру, должна быть объявлена. Делается это примерно так:
В первом случае мы объявляем типизированную файловую переменную. В файле, который будет связан с этой переменной, могут храниться только целые числа типа Integer.
Во втором случае мы объявляем нетипизированную файловую переменную. В файле, который будет связан с этой переменной, могут храниться данные произвольного типа в текстовом формате.
Далее приведён пример программы, где рассмотрена работа как с типизированными, так и с нетипизированными файловыми переменными.
Assign
The Borland Pascal procedure assign associates a file variable with an external entity (e. g. a device file or a file on disk). Assign only operates on the program’s internal management data and has otherwise no immediate observable effect.
Contents
usage
In non-ISO modes the FPC needs files to be explicitly associated with external entities. This can be achieved with assign . The first parameter is a file variable, the second parameter specifies a path.
Note, you can run this program without any troubles as any user on any platform. Nonexistent path components (e. g. directories), missing privileges to eventually access the file or any path component, or unacceptable characters (usually chr ( 0 ) ) do not pose a problem to assign . It merely operates on internal management data.