Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi.Начало.doc
Скачиваний:
0
Добавлен:
03.01.2020
Размер:
1.56 Mб
Скачать

Открытие файлов

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

AssignFile( F, ‘schet.txt');

AssignFile( F1, ‘d:\game\schet.txt’);

Процедур открытия две. Первая их них – Rewrite, используется для откры­тия файла в режиме записи ( при этом происходит полное уничтожение его содержимого, а размер файла становится равным нулю), а вторая, Reset – для открытия файла в режиме чтения ( при этом вносить изменения в содержимое файла не разрешено). Rewrite можно также применять для создания нового файла. Второй необязательный параметр этих процедур определяет длину записи нетипизированного файла в байтах. Например:

Var F : File;

Rewrite(F, 1);

Запись в файл

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

procedure BlockWrite(var f: File; var Buf; Count: Integer

[; var AmtTransferred: Integer]);

Где Buf – это произвольная переменная, Count – количество блоков записываемой информации, если размер блока не указан явно при открытии файла, то он считается равным 128 байтам. Параметр AmtTransferred – необязательный, в нем будет храниться число реально записанных блоков.

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

Var

F:File of TTableRec;

TableRec1, Table2 : TTableRec;

Rewrite(F);

Write(F, TableRec1, Table2);

Значения переменных TableRec1 и Table2 будут последовательно записаны в файл.

Считывание из файла

Для работы с нетипизированными файлами применяется процедура BlockRead, параметры которой аналогичны параметрам процедуры BlockWrite.

Для считывания информации из типизированных файлов используется процедура Read. Она записывается аналогично процедуре Write.

Var F: File of TTableRec;

r1, r2:TTableRec;

AssignFile(F, 'd:\temp\t2.txt');

Reset(F);

Read(F, r1, r2);

Начиная с текущей позиции в файле F, из него будут последовательно считаны блоки данных, соответствующие размерам экземпляра записи TTableRec и записаны в переменные r1, r2. По окончании операции ввода текущая позиция в файле F сдвинется на два элемента. Специальная процедура Trancate позволяет отсечь (удалить) все содержимое файла, начиная с текущей позиции до его конца.

Закрытие файла

По завершении работы с файлом его нужно закрыть. Для этого используется процедура CloseFile(F);

Установка новой позиции в файле

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

Procedure Seek(var F; N : Longint);

Первый параметр F – это файловая переменная (определенного типа или нетипизированная), второй параметр – номер записи в файле, начиная с которой будет выполнена следующая операция ввода\вывода. Этот номер задает позицию в файле. Нумерация записей начинается с нуля. Для нетипизированных файлов второй параметр задает номер байта, с которого начинается чтение или запись информации.

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