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

8.2. Прямая работа с файлами (классический способ)

Технология работы с файлами в системе Delphi требует определённого порядка действий:

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

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

  3. Файл закрывается. Теперь он опять доступен другим приложениям без ограничений. Закрытие файла гарантирует, что все внесённые изменения будут сохранены, так как для увеличения скорости работы изменения предварительно сохраняются в специальных буферах операционной системы.

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

Файл задается с помощью зарезервированного слова file. Затем можно указать тип файла

var

f1:file of char;

f2:TextFile;

f3:file;

Можно выделить три вида файлов:

  • Типизированные файлы(задаются с помощью file of..)

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

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

Доступ к файлам

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

var

f : file;

begin

...

assignFile(f, 'newfile.txt');

...

end.

Первый параметр - файловая переменная, второй - название файла. Затем требуется инициализировать файл. Для этого существует три процедуры:

  • Reset - эта процедура открывает для чтения уже созданный файл. Для нетипизированных файлов необходимо указывать длину записи.

  • Rewrite - эта процедура открывает файл для записи. Если файла нет, то он создается, если есть, то он перезаписывается, уничтожая тем самым содержимое старого файла. Для нетипизированных файлов необходимо указывать длину записи.

  • Append - эта процедура только для текстовых файлов, она открывает текстовый файл и устанавливает указатель файла в конец, тем самым становится возможность сделать дозапись в старый файл.

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

var f1 : file;

begin

assignFile(f1, 'newfile');

rewrite(f1, 1); //f1 нетипизированный файл, мы должны указать длину

// записи (обычно единица)

CloseFile(f1);

end.

Подпрограммы для работы с файлами

Функция

Описание

Function EOF(var F):boolean

Возвращает True если файловый указатель стоит в конце файла.

Procedure Erase(var f)

Уничтожает файл F. Перед уничтожением необходимо закрыть файл с помощью процедуры CloseFile.

FileExists(const filename:string):boolean

Возвращает True если файл с именем filename существует.

procedure Flush(var f)

Сохраняет изменения файла.

procedure Rename(var f;NewName:string)

Переименовывает файл F, FileName - новое имя. Перед выполнением процедуры необходимо закрыть файл с помощью процедуры CloseFile.

function FileSize(var f):integer;

Возвращает размер файла в байтах, если файл нетипизированный, или в количестве записей, если файл типизированный.

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