Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
E.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
324 Кб
Скачать
☆

4.3. Файловый тип данных.

Способы объявления файлов различной логической структуры:

типизированные файлы (задаются предложением FILE OF ...);

текстовые файлы (определяются типом TEXT);

нетипизированные файлы (определяются типом FILE).

Переменные файлового типа могут быть описаны в программе либо с использованием раздела типов Type, либо явно в разделе переменных Var.

Первый способ объявления файловой переменной (с использованием раздела типов Type):

Type <имя типа 1> = File of <базовый тип элементов>;

<имя типа 2> = Text;

<имя типа 3> = File;

Var <имя файловой переменной 1>:<имя типа 1>;

<имя файловой переменной 2>:<имя типа 2>;

<имя файловой переменной 3>:<имя типа 3>;

Второй способ объявления файловой переменной (в разделе переменных Var ):

Var

<имя файловой переменной 1>: File of <базовый тип элементов>;

<имя файловой переменной 2>: File;

<имя файловой переменной 3>: Text;

Например,

первый способ:

Второй способ:

Type

File_1 = File of integer;

File_2 = Text;

File_3 = File;

Var

F1 : File_1;

F2 : File_2;

F3 : File_3;

Var

F1 : File of integer ;

F2 : Text;

F3 : File;

С помощью файловых переменных F1, F2, F3, соответственно, описываются типизированный, текстовый и нетипизированный файлы.

С каждым файлом можно связать понятие - текущий указатель. Это неявно описанная буферная переменная, которая указывает на номер конкретного компонента файла. Начальный компонент имеет нулевой номер. Например, на рисунке текущий указатель "смотрит" на компонент с номером (k).

(0)

(1)

...

(k)

(k+1)

...

eof

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

4.4. Стандартные процедуры для работы с файлами

Процедура ASSIGN. Для работы с каким - либо физическим файлом, находящимся на магнитных носителях, необходимо первоначально связать его с файловой переменной (логическим файлом), с помощью которой будет осуществляться доступ к этому физическому файлу. Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными: INPUT - для ввода данных и OUTPUT - для вывода на экран. Другие файлы, а также логические устройства, становятся доступны программе только после выполнения особой процедуры, которая заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла.

Для установления связи между файловой переменной и именем файла на внешнем устройстве в Турбо Паскале имеется стандартная процедура Assign.

Формат вызова процедуры в программе:

Assign (<имя файловой переменной>, ’<имя внешнего файла>’);

Второй параметр в процедуре Assign является выражением строкового типа, поэтому заключается в апострофы. В общем виде это выражение может быть записано следующим образом: 'имя диска:\имя каталога\имя подкаталога\...\имя файла'. Если имена диска и каталога не указаны, то выбирается текущий диск и текущий каталог. Если вместо имени внешнего файла стоят два апострофа без пробела ( '' ), то файл связывается со стандартным файлом ввода INPUT или со стандартным файлом вывода OUTPUT.

Например,

Assign (F1, ‘a:int.dat’);

Все операции, выполняемые над переменной F1, будут выполняться над файлом, хранящимся на диске A и имеющем имя ‘int.dat’.

Assign (F1, 'c:\bp\prog\int1.pas');

Все операции, выполняемые над переменной F1, будут выполняться над файлом, хранящимся на диске С в каталоге bp, подкаталоге prog и имеющем имя ‘int1.pas’.

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

Формат вызова процедуры в программе:

Reset (<имя файловой переменной>);

При этом текущий указатель устанавливается на первый элемент файла (с номером 0).

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

Формат вызова процедуры в программе:

Rewrite (<имя файловой переменной >);

При открытии файла указатель текущей позиции устанавливается в его начало.

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

Формат вызова процедуры в программе:

Close (<имя файловой переменной>);

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

Формат вызова процедуры в программе:

Rename (<имя файловой переменной>, ’<имя внешнего файла>’);

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

Формат вызова процедуры в программе:

Erase (<имя файловой переменной>);

Заметим, что процедуры Rename и Erase можно выполнять только для файловых переменных, которые уже связаны с каким - либо физическим файлом. Перед выполнением этих процедур необходимо закрыть файл, если он ранее был открыт процедурами RESET, REWRITE или APPEND.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]