Назначает файловой переменной имя внешнего файла.
Объявление
Procedure Assign(Var F; Name : String);
Режим
Windows, Real, Protected
Замечания
Параметр F — файловая переменная любого файлового типа, а Name — выражение со строковым типом или выражение типа PChar, если допускается расширенный синтаксис. Все дальнейшие операции с переменной F на самом деле происходят с внешним файлом с именем Name.
После обращения к Assign, связь между переменной F и внешним файлом продолжает существовать до тех пор, пока для переменной F не будет сделано еще одно переназначение.
Имя файла состоит из пути — нулевого или большего количества имен каталогов, разделенных левыми наклонными чертами, сопровождаемого собственно именем файла:
Если путь начинается с левой наклонной черты, то он находится в корневом каталоге, иначе, он находится в текущем каталоге.
Drive — идентификатор дисковода (A-Z). Если Drive и двоеточие опущены, то используется заданный по умолчанию дисковод. DirName. DirName — корневой каталог и подкаталоги в пути к файлу. Имя файла состоит из имени, длиной до восьми символов, возможно сопровождаемых точкой и расширения, длиной до трех символов. Максимальная длина всего имени файла вместе с путем — 79 символов.
Если String — пустая строка, то есть когда Length(Name) равно нулю, то возникает специальный случай и переменная F становится связанной со стандартным файлом ввода или вывода. Эти специальные файлы позволяют программе использовать возможность операционной системы DOS — возможность переназначения ввода/вывода.
Если переменной F назначено пустое имя, то после обращения к Reset(F), F относится к стандартному устройству ввода, а после обращения к ReWrite(F), F относится к стандартному устройству вывода.
Ограничения
Не может использоваться для открытых файлов.
Процедура Assign
Функция: Присваивает имя внешнего файла файловой пере-
менной.
Описание: Аssign(f; имя : string)
Примечания: Параметр f является файловой переменой лю-
бого типа файла, а «имя» должно представлять собой выражение
строкового типа. Дальнейшие операции с f будут выполняться с
внешним файлом с именем, заданным параметром «имя». После
обращения к процедуре Аssign связь, установленная между пе-
ременной f и внешним файлом будет существовать до тех пор,
пока не будет выполнена другая процедура Аssign для перемен-
ной f. Имя состоит из маршрута (пути доступа), определяющего
доступ к 0 или более каталогов, имена которых отделены друг
от друга с помощью обратной косой черты и за которыми следу-
ет действительное имя файла:
Если путь доступа начинается с обратной косой черты, то
поиск начинается в корневом каталоге, в противном случае он
начинается в текущем каталоге. «Диск» представляет собой
идентификатор диска (А-Z). Если «Диск» и двоеточие будут
опущены, то используется назначенный по умолчанию дисковод.
Каталог «имя_катимя_кат. имя_кат» является корне-
вым каталогом и путем доступа к подкаталогу, в котором со-
держится имя файла. Параметр «имя_файла» может содержать до
восьми символов, за которыми могут следовать точка и расши-
рение имени файла, длиной до трех символов. Максимально до-
пустимая длина всего имени файла составляет 79 символов.
Ограничения: Процедура Аssign не должна использоваться
для открытого файла. Когда параметр «имя» представляет собой
пустую строку, возникает особый случай, то есть Length(имя)
равно нулю. В этом случае параметр f оказывается связанным
со стандартным файлом ввода или стандартным файлом вывода.
Эти специальные файлы позволяют инициализировать средство
изменения направления ввода-вывода операционной системы ДОС.
Если присвоено пустое имя, то после обращения к Rеset(f) f
будет указывать на стандарный файл ввода, а после обращения
к Rеwritе(f) f будет указывать на стандартный файл вывода.
Пример: (Делается попытка назначить для вывода програм-
мы вместо ДОС устройство РRN, диск и т.д.)
var f : text;
begin
Assign(f,»); < стандартный вывод >
Rewrite(f);
Writeln(f,’стандартный вывод. ‘);
Close(f);
end;
Функция AssignCrt
Модуль Сrt
Функция: Связывает текстовый файл с устройством СRТ.
(терминалом).
Описание: AssignCrt(var f: Text)
Примечания: Процедура АssignCrt работает точно также,
как стандартная процедура Аssing, за исключением того, что
имени файла не указывается. Вместо этого текстовый файл свя-
зывается с устройством CRТ (терминалом).
Это позволяет позволяет ускорить вывод (или ввод) по
сравнению с той скоростью, которая была бы возможна при ис-
пользовании стандартного вывода (или ввода).
Пример:
uses Crt;
var
f : text;
begin
Write(‘Вывести на экран или на устройство печати? [S, P]’);
if UpCase(ReadKey) = ‘P’ then
Assign(f,’PRN’) < вывод на устройство печати >
else
AssignCrt(f); < вывод на экран; используются под-
программы работы с экраном, осу-
ществляющие быстрый вывод информа-
ции >
Rewrite(f);
Writeln(f,’Быстрый вывод через программы CRT. ‘);
Close(f)
end.
Процедура Assign в Паскале связывает переменную с файлом. Синтаксис:
Как связать файл с переменной в Паскале
Процедура Assign связывает переменную F с файлом какого-либо типа. После этого в программе можно использовать переменную F для работы с указанным файлом.
Вызов процедуры Assign не открывает файл, а только связывает имя файловой переменной F с файлом на диске. При этом файл отмечается как закрытый.
Как видно из синтаксиса процедуры, файл может быть как типизированным, так и не типизированным.
Как объявить файловую переменную
Перед вызовом процедуры файловая переменная, которая передаётся в процедуру, должна быть объявлена. Делается это примерно так:
В первом случае мы объявляем типизированную файловую переменную. В файле, который будет связан с этой переменной, могут храниться только целые числа типа Integer.
Во втором случае мы объявляем нетипизированную файловую переменную. В файле, который будет связан с этой переменной, могут храниться данные произвольного типа в текстовом формате.
Далее приведён пример программы, где рассмотрена работа как с типизированными, так и с нетипизированными файловыми переменными.