Стандартный подход к работе с файлами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Стандартный подход к работе с файлами



В системе Delphi имеется стандартный тип File, на основе которого можно создавать новые файловые типы для работы со структурированными данными.

Предположим, переменная описана следующим образом:

Var имя переменной: File;

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

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

Var имя переменной: File of тип.

В качестве типа файла должен быть указан тип, для которого точно известен фиксированный размер в байтах. К таким типам относятся все базовые типы (Real, Integer и прочие), за исключением строкового типа String, если для него не задан размер. Как известно, при использовании строкового типа в квадратных скобках должен быть указан максимальный размер строки, например:

N: string [50].

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

Например:

Type Maytipe = record;

Name: string [20];

Number: integer;

end;

var F: File of Maytipe.

В данном фрагменте программы прописано создание собственного типа данных под названием Maytipe. Файл типа Maytipe будет содержать строки, с максимальной размерностью 20 символов и целые числа. После описания собственного типа созданный тип присваивается файловой переменной.

Место расположение файлов

Перед тем, как выполнить физическое открытие файла, программе необходимо сообщить, где он находится. Для этого файловая переменная должна быть связана с именем файла, для чего в системе Delphi применяется процедура AssignFile (параметр 1, параметр 2). Параметр 1 представляет собой имя переменной. Параметр 2 – строка, содержащая название файла (путь файла). Следует отметить, что параметр 2 должен быть указан в одинарных кавычках (система Delphi выделит путь цветом). Если путь файла указан не полностью, то файл будет открываться в текущем каталоге.

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

AssignFile (F, ‘test.dat’);

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

AssignFile (F, ‘с:\ projects\test.dat’).

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

Процедур открытия файлов системе Delphi (как и в Паскале) две.

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

Вторая из них Reset. Reset используется для открытия файла в режиме чтения. При этом внести изменения в файл невозможно. В этом случае данные из файла можно считать в произвольную переменную или в объект, вынесенный на форму: edit, label, memo и т. д.

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

Например, если тип файла указан:

var F: File of Maytipe;

Rewrite (F);

или

var F: File of Maytipe;

Reset (F);

В данном случае тип файла создан пользователем.

Если тип файла не указан:

var F: File;

Rewrite (F, 1;)

или

var F: File;

Reset (F, 1).

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

Запись в файл

Для записи данных в файл, имеющий определенную структуру, т. е. файл, описанный при помощи структуры File of…, в системе Delphi применяется процедура Write (параметр 1, параметр 2,… параметр n). Параметр 1 - файловая переменная; параметр 2, …, параметр n – список переменных типа, соответствующих типу файла.

Например:

var F: File of Maytipe;

A, B, C: Maytipe;

Rewrite (F);

Write (F, B,C).

В представленном фрагменте программы прописано создание файла пользовательского типа Maytipe, описаны переменные A, B, C такого же типа, открыт файл F для перезаписи, в который записываются переменные В и С.

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

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

Чтобы считать данные из файла, необходимо использовать процедуру Read (параметр 1, параметр 2,… параметр n). Процедура Read аналогична процедуре Write.

Например:

var F: File of Maytipe;

A, B, C: Maytipe;

Reset (F);

Read (F, B,C).

В представленном фрагменте программы прописано создание файла пользовательского типа Maytipe, описаны переменные A, B, C такого же типа, открыт файл F для чтения, из которого начиная с исходной позиции (по умолчанию начало файла) будут считаны блоки данных, соответствующие размерам экземпляра типа Maytipe и записаны в переменные В и С.

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

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

Например, CloseFile (F).



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 191; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.172.146 (0.009 с.)