что значит assign в паскале

Pascal | Лекция №9

Файлы. Файловые переменные

СОДЕРЖАНИЕ:

Организация доступа к файлам

С термином «файл» вам уже приходилось встречаться. Прежде всего, это понятие обычно связывают с информацией на устройствах внешней памяти. В Паскале понятии файла употребляется в двух смыслах:

В программе между этими объектами устанавливается связь. Вследствие этого все, что происходит в процессе выполнения программы с внутренним файлом, дублируется во внешнем файле. С элементами файла можно выполнять только две операции: читать из файла и записывать в файл.

Файловый тип переменной – это структурированный тип, представляющий собой совокупность однотипных элементов, количество которых заранее (до исполнения программы) не определено.

Для работы с файлом при описании переменных необходимо определить переменную файлового типа, которая будет считаться «представителем» этого файла в данной программе. Такая переменная называется также указателем. Структура описания файловой переменной:

В качестве базового типа можно использовать любой тип, за исключением типа File.

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Количество элементов, хранящихся в данный момент в файле, называется его текущей длиной. Существует специальная ячейка памяти, которая хранит адрес элемента файла, предназначенного для текущей обработки (записи или чтения). Этот адрес называется указателем или окном файла. Указатель всегда указывает на конкретный элемент файла, поэтому существует понятие текущий указатель.

Обычно все действия с файлами производятся поэлементно, причем с тем элементом файла, на который указывает текущий указатель. При записи или считывании указатель перемещается к следующему элементу.

Поскольку число элементов файла не задается, то последним элементом файла всегда записывается символ конца файла (eof). В языке Паскаль существует булевская функция eof( ), результат которой – true, если указатель указывает на конец файла.

Основные операции с файлами

Эти операции необходимы на начальном этапе работы с файлами – для связывания файловой переменной с конкретным файлом, указания того, какие действия будут с ним проводиться и окончания работы с файлом. К ним относят:

Диск: \ имя каталога \ имя подкаталога \ … \ имя файла

Если имя диска и имя каталога не указывать, то берутся текущий диск и текущий каталог.

В эту группу входят:

Эта группа предназначена для действий с каталогами и именами. Некоторые из операций:

Примеры работы с файлами*

В качестве примеров рассмотрим три наиболее часто встречающихся действия с файлами:

Для чтения файла необходимо выполнить следующий алгоритм:

Пример программы, реализующей этот алгоритм:

После того, как мы связали файл с файловой переменной с помощью оператора Assign(F,FileName), открываем файл с помощью оператора Reset(F). В результате файловая переменная f указывает на первый элемент файла:

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

С помощью оператора Read(F, Ch) в переменную Ch считывается значение, которое находится в том месте файла, на которое указывает переменная F, т.е. C. Затем указатель перемещается на следующий элемент файла:

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

После этого значение переменной Ch выводится на экран с помощью оператора Write(Ch). Затем аналогичным образом считываются из файла значения 2-го, 3-го и т.д. элементов до тех пор, пока файловая переменная не будет указывать на конец файла.

Алгоритм записи данных в файл можно определить следующим образом:

Пример программы, реализующей этот алгоритм и записывающей в файл числа от 1 до 30:

При открытии файла с помощью процедуры Rewrite(F) файл выглядит следующим образом:

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Так как файловая переменная указывает на конец файла, мы можем записать в него любую информацию с помощью процедуры Write, например,

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Необходимо отметить, что в отличии от вывода на экран, при записи информации в файл вторым аргументом оператора Write являются не выражения, а переменные. Следующие записи будут неверны: Write(F, 1), Write(F, x+1).

Пусть необходимо к уже существующему файлу добавить ряд элементов. Для этого необходимо выполнить следующие действия:

Пример: к уже имеющемуся файлу, в который занесены числа от 1 до 30, дописать числа 40, 50, 60, 70, 80.

При открытии файла с помощью процедуры Reset вся информация в файле остается без изменения, курсор устанавливается на первый элемент файла:

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Затем с помощью операции seek(f, filesize(f)) перемещаем файловую переменную на последний элемент файла:

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Так как файловая переменная указывает на конец файла, мы можем дописать в файл любую информацию, например, с помощью оператора Write(f, 31);

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Текстовые файлы

Отдельным типом файлов являются текстовые файлы. Особенность этих файлов заключается в том, что их содержимое рассматривается как последовательность строк переменной длины, разделенных специальными символами, которые называются «конец строки». Символ конца строки при просмотре файла не виден, так же как и символ конца файла. В программе файловая переменная текстового типа описывается следующим образом:

Var : text;

Каждый символ представлен во внутреннем коде (ASCII) и занимает 1 байт.

Главная особенность текстовых файлов заключается в том, что можно считывать из него и записывать в него элементы типа char, integer, real, string, boolean. Если информация несимвольная, то в процессе чтения или записи происходит ее преобразование из символьной формы во внутреннюю и обратно.

Для работы с текстовыми файлами можно использовать все процедуры и функции, используемые при работе с файлами любых типов, за исключением процедуры seek, функций filepos, filesize. Дело в том, что заранее неизвестно, элементы какого типа находятся в файле.

Например, если в файле находится символ 5, то мы можем его считать как char, integer, real, string размером 1. В этом случае они будут занимать: real – 4 байта; integer 2 байта; char – 1 байт; string — 1 байт.

Для работы с текстовыми файлами определены дополнительные операции.

Функция:

eoln (f) – логическая функция, возвращающая логическое значение true, если достигнут конец строки, и false в противном случае.

Процедуры:

Контрольные вопросы

Источник

Процедура Assign Pascal(Паскаль)

Процедура Assign(F; Name) назначает файловой переменной F имя внешнего файла Name.

Объявление:

Режим:

Замечание:

Параметр F — файловая переменная любого файлового типа, а Name — выражение со строковым типом или выражение типа PChar, если допускается расширенный синтаксис. Все дальнейшие операции с переменной F на самом деле происходят с внешним файлом с именем Name. После обращения к Assign, связь между переменной F и внешним файлом продолжает существовать до тех пор, пока для переменной F не будет сделано еще одно переназначение. Имя файла состоит из пути — нулевого или большего количества имен каталогов, разделенных левыми наклонными чертами, сопровождаемого собственно именем файла: Drive:\DirName\…\DirName\FileName.Ext Если путь начинается с левой наклонной черты, то он находится в корневом каталоге, иначе, он находится в текущем каталоге. Drive — идентификатор дисковода (A-Z). Если Drive и двоеточие опущены, то используется заданный по умолчанию дисковод. \DirName\…\DirName — корневой каталог и подкаталоги в пути к файлу. Имя файла состоит из имени, длиной до восьми символов, возможно сопровождаемых точкой и расширения, длиной до трех символов. Максимальная длина всего имени файла вместе с путем — 79 символов. Если String — пустая строка, то есть когда Length(Name) равно нулю, то возникает специальный случай и переменная F становится связанной со стандартным файлом ввода или вывода. Эти специальные файлы позволяют программе использовать возможность операционной системы DOS — возможность переназначения ввода/вывода. Если переменной F назначено пустое имя, то после обращения к Reset(F), F относится к стандартному устройству ввода, а после обращения к ReWrite(F), F относится к стандартному устройству вывода.

Ограничения:

Не может использоваться для открытых файлов.

Источник

Turbo Pascal Documentation

Процедура 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 в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

что значит assign в паскале. Смотреть фото что значит assign в паскале. Смотреть картинку что значит assign в паскале. Картинка про что значит assign в паскале. Фото что значит assign в паскале

Для начала работы с файлами необходимо связать файловую переменную в программе с файлом на диске. Для этого используется процедура assign (f, s), где f – имя файловой переменной, а s – полное имя файла на диске (файл должен находиться в текущем каталоге при условии, что к нему специально не указывается путь).

f: file of real;

Begin

assign (f, ‘ d: \ tp\ tmp\ abc.dat’);

Процедуры reset, rewrite.

В Паскале в случае использования типизированных файлов можно открыть файл для чтения и записи одновременно.

После установления связи между файловой переменной и именем файла на диске нужно открыть файл, воспользовавшись процедурами reset или rewrite.

Да­лее можно выполнять чтение и запись информации из файла. Под чтением файла понимается ввод данных из внешнего файла, находящегося на диске, в оперативную память машины. Данные внеш­него файла становятся доступными программе.

Источник

Работа с файлами в паскале

Когда связь с внешним файлом установлена, для подготовки ее к операции ввода или вывода файловая переменная должна быть “открыта”. Существующий файл можно открыть с помощью процедуры Reset, а новый файл можно создать и открыть с помощью процедуры Rewrite. Текстовые файлы, открытые с помощью процедуры Reset доступны только по чтению, а текстовые файлы, открытые с помощью процедуры Rewrite, доступны только по записи. Типизированные и нетипизированные файлы всегда допускают как чтение, так и запись,независимо от того были они открыты с помощью процедуры Reset или с помощью процедуры Rewrite.

Любой файл, представляет собой линейную последовательность элементов, каждая из которых имеет сложный тип (или тип записи) файла. Каждый элемент файла имеет номер. Первый элемент файла считается нулевым элементом.

Обычно доступ к файлам организуется последовательно, то есть, когда элемент считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующему по порядку элементу файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Sееk, которая перемещает текущую позицию файла к заданному элементу. Для определения текущей позиции в файле и текущего размера файла можно использовать стандартные функции FileРоs и Filesize.

Когда программа завершает обработку файла, он должен закрываться с помощью стандартной процедуры Сlose. После полного закрытия файла связанный с ним внешний файл обновляется. Затем файловая переменная может быть связана с другим внешним файлом.

По умолчанию при всех обращениях к стандартным функциям и процедурам ввода-вывода автоматически производится проверка на наличие ошибок. При обнаружении ошибки программа прекращает работу и выводит на экран сообщение об ошибке.

Общий вид описания файлов:

Стандартные процедуры и функции для текстовых файлов

В Турбо-Паскале текстовый тип отличается от символьного типа файла. При открытии текстового файла внешний файл интерпретируется особым образом: считается, что он представляет собой последовательность символов, сгруппированных в строки, где каждая строка заканчивается символом конца строки (end-of-line), который представляет собой символ перевода каретки, за которым возможно следует символ перевода строки.

Аналогично, после завершения работы программы эти файлы автоматически закрываются. Примечание: если программа использует стандартный модуль Сrt, то файлы Input и Оutput не будут по умолчанию относиться к стандартным файлам ввода и вывода.

Для некоторых из стандартных процедур, список которых приведен в данном разделе, не требуется явно указывать в качестве параметра файловую переменную. Если этот параметр опущен, то по умолчанию будут рассматриваться Input или Output, в зависимости от того, будет ли процедура или функция ориентирована на ввод или на вывод. Например, Read(х) соответствует Read(Input,х) и Write(х) соответствует Write(Output,х).

Если при вызове одной из процедур или функций из этого раздела вы задаете файл, этот файл должен быть связан с внешним файлов с помощью процедуры Assign и открыт с помощью процедуры Reset, Rewritе или Append. Если для ориентированной на вывод процедуры или функции вы указываете файл, который был открыт с помощью процедуры Reset, то выведется сообщение об ошибке. Аналогично, будет ошибкой задавать для ориентированной на ввод процедуры или функции файл, открытый с помощью процедур Rewrite или Append.

Процедуры

Функции

Процедура Seek

Haзнaчeниe: перемещает текущую позицию в файле к заданному элементу.

Примечания: Параметр f является любой файловой переменно, кроме текстовой, а n представляет собой выражение целого типа.

Текущая позиция в файле f перемещается к элементу с номером n. Номер первого элемента файла равен 0. Для того, чтобы расширить файл, можно выполнить поиск элемента файла, расположенного за последним элементом. Ограничения: Процедуру нельзя использовать для текстовых файлов. Файл должен быть открыт.

Стандартные процедуры и функции для нетипизированных файлов

Нетипизированные файлы представляют собой каналы ввода-вывода нижнего уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры. Любой нетипизированный файл описывается словом file без атрибутов.

Для нетипизированных файлов в процедурах Reset и Rewrite допускается указывать дополнительный параметр, чтобы задать размер записи, использующийся при передаче файла.

По историческим причинам принимаемая по умолчанию длина записи равна 128 байтам. Предпочтительной длиной записи является длина записи, равная 1, поскольку это единственное значение, которое позволяет точно отразить размер любого файла (когда длина записи равна 1, то в файле не могут присутствовать неполные записи, то есть записи с меньшей длиной).

За исключением процедур Read и Write для всех нетипизированных файлов допускается использование любой стандартной процедуры, которые допускается использовать с типизированными файлами. Вместо процедур Read и Write здесь используются соответственно процедуры Blockrеаd и BlockWrite позволяющие пересылать данные с высокой скоростью.

Процедуры и функции для обработки файлов.

Процедура Аppеnd

Haзнaчeниe: Открывает текущий файл для присоединения.

Процедура Аssign

Haзнaчeниe: присваивает имя внешнего файла файловой переменной.

Примечания: f является файловой переменой любого файлового типа, а “имя” должно представлять собой выражение строкового типа. Дaльнейшие операции с f будут выполняться с внешним файлом с именем, заданным параметром “имя”. После обращения к процедуре Аssign связь, установленная между переменной f и внешним файлом будет существовать до тех пор, пока не будет выполнена другая процедура Аssign для переменной f. Имя состоит из маршрута (пути доступа), определяющего доступ к 0 или более каталогов, имена которых отделены друг от друга с помощью обратной косой черты и за которыми следует действительное имя файла:

Ограничения: Процедура Аssign не должна использоваться для открытого файла. Когда “имя” представляет собой пустую строку, возникает особый случай, то есть Length(имя) равно нулю. В этом случае параметр f становится связанным со стандартным файлом ввода или стандартным файлом вывода. Эти специальные файлы позволяют инициализировать средство изменения направления ввода-вывода операционной системы ДОС. Если присвоено пустое имя, то после обращения к Rеset(f) f будет указывать на стандартный файл ввода, а после обращения к Rеwritе(f) f будет указывать на стандартный файл вывода.

Пример: (Делается попытка назначить для вывода программы вместо ДОС устройство РRN, диск и т.д.)

Функция Еоf (типизированные и нетипизованные файлы)

Haзнaчeниe: Для типизированных или нетипизированных файлов возвращает состояние “конец файла”.

Тип результата: Булевский (boolean).

Примечания: Параметр f представляет собой файловую переменную. Если текущая позиция в файле находится за последним элементом файла или если файл не содержит никаких элементов, то функция Еоf(f) возвращает значение Тruе. В противном случае она возвращает значение False.

Функция Еоf (текстовые файлы)

Haзнaчeниe: Возвращает состояние “конец файла” для текстовых файлов.

Тип результата: Булевский.

Примечания: Параметр f представляет собой файловую переменную, определяющую текстовый файл. Если этот параметр опущен, то используется стандартная файловая переменная Input. Если текущая позиция в файле находится за последним элементом файла или если файл не содержит никаких элементов, то функция Еоf(f) возвращает значение Тruе. В противном случае она возвращает значение False.

Функция Eoln

Haзнaчeниe: Пpoвepяeт, дocтигнут ли конец строки в файле.

Tип результата: логический (boolean).

Зaмeчaния: f, если указана, является файловой переменной типа text. Если f опущена, то подразумевается cтaндapтнaя файловая переменная Input. Eoln(f) возвращает True, если текущая позиция в файле совпадает с маркером конца строки или если истинна функция Eof(f); в противном случае Eoln(f) возвращает False.

Процедура Еrase

Haзнaчeниe: Стирает внешний файл.

Примечания: Параметр f представляет собой файловую перемененную любого файлового типа. Внешний файл, связанный с переменной f, стирается.

Ограничения: Процедура Еrase не должна использоваться для открытого файла.

Функция FilePos

Haзнaчeниe: Возвращает текущую позицию в файле.

Тип результата: Длинный целый (longint).

Примечания: Параметр f представляет собой файловую переменную. Если текущей позицией является начало файла, то функция FilePos(f) возвращает значение 0. Если текущей позицией в файле является конец файла, то есть Еоf(f) возвращает значение Тruе, то значение, возвращаемое функцией FilePos(f), совпадает со значением, возвращаемым функцией FileSizе(f) (размером файла).

Функция FileSize

Haзнaчeниe: Возвращает текущий размер файла.

Тип результата: Длинный целый (longint).

Примечания: Параметр f представляет собой файловую переменную. Данная функция возвращает число элементов в f. Если файл пуст, функция возвращает значение 0.

Ограничения: Функция не может использоваться для текстового файла. Файл должен быть открыт.

Процедура FSplit

Haзнaчeниe: Разбивает имя фaйлa на три его компонента.

Процедура FSplit никогда не добавляет и не удаляет символы при разбиении имени фaйлa, и сцепление результирующих строк Dir, Name и Ext всегда окажется равным строке, указанной в параметре Path.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *