Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Delphi: работа с файлами

Определение 1

Delphi – это структурированный, императивный, объектно-ориентированный, высокоуровневый язык программирования.

Введение

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

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

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

Delphi: работа с файлами

В зависимости от типа компонентов выделяют следующие типы файлов:

  • файлы, которые состоят из компонентов фиксированного размера. Компонентами таких файлов обычно являются записи;
  • файлы, которые состоят из компонентов переменного размера (не типизированные файлы). Такие файлы могут рассматриваться просто как последовательность байтов;
  • текстовые файлы, которые состоят из текстовых строк.

Для выполнения операций с файлом в программе должна быть объявлена файловая переменная. В файловой переменной должно быть запомнено имя файла, объявлен режим доступа (к примеру, только чтение), иные атрибуты. В зависимости от типа файла файловая переменная может описываться по-разному.

«Delphi: работа с файлами» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Для работы с файлом, который состоит из типовых компонентов, переменная должна быть объявлена при помощи словосочетания file of, после которого должен следовать тип компонента:

Var

F: fίle of TPerson;

Перед подобным объявлением тип TPerson должен быть уже описан ранее. Для того чтобы объявить переменную для работы с не типизированным компонентом, следует использовать отдельное слово file:

Var

F: fίle;

Для работы с текстовым файлом переменная должна быть описана типом TextFίle: Var

F: TextFίle;

Чаще всего приходится иметь дело именно с текстовым отображением информации, поэтому сначала рассмотрим процедуру записи и чтения текстового файла. Начиная работу с файлом, необходимо, прежде всего, осуществить вызов процедуры AssignFίle, чтобы можно было файловой переменной установить в соответствие имя файла на диске:

AssίgnFile(F, 'MyFile.txt');

По результатам этого действия поля файловой переменной F будут инициализированы начальными значениями. Причем в поле имени файла будет занесена строка 'MyFίle.txt'.

Поскольку файла еще не существует на диске, то его следует создать:

Rewrίte(F);

Далее можно записать в файл какие-либо строки текста. Это можно выполнить при помощи хорошо всем известных процедур Wrίte и Wrίteln:

Wrίteln(F, 'Pί = ', Pί);

Wrίteln(F, 'Exp = ', Exp(1));

При работе с файлами первый параметр данных процедур указывает, куда выполняется вывод данных. А после обработки файл необходимо закрыть:

CloseFίle(F);

Далее рассмотрим процедуру чтения содержимого текстового файла. После того как выполнена инициализация файловой переменной (AssignFίle), файл может быть открыт при помощи процедуры Reset:

Reset(F);

Для чтения компонентов могут использоваться процедуры Read и Readln, в которых первый параметр указывает, откуда выполняется ввод данных. После работы файл должен быть закрыт. В качестве примера можно привести программу, которая распечатывает в своем окне содержимое текстового файла 'MyFίle.txt':

program Console;

{$APPTYPE CONSOLE}APPTYPE CONSOLE}

Uses

SysUtίls;

Var

F: TextFίle;

S: strίng;

Begίn

AssίgnFile(F, 'MyFίle.txt');

Reset(F);

whίle not Eof(F) do

begίn

Readln(F, S);

Wrίteln(S);

end;

CloseFίle(F);

Wrίteln('Press Enter to exit...');

Readln;

end.

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

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

Для реализации обработки файлов в языке Delphί присутствует специальный набор процедур и функций:

  1. AssίgnFile(var F; FίleName: strίng). Служит, для того чтобы связать файловую переменную F и файл, имя которого приведено в FίleName.
  2. Reset(var F $[$: Fίle; RecSize: Word $]$ ). Данная функция предназначена для открытия существующего файла. Когда выполняется открытие не типизированного файл, то RecSίze определяет размер компонента файла.
  3. Rewrίte(var F $[$: Fίle; RecSίze: Word $]$ ). Служит для создания и открытия нового файла.
  4. Append(var F: TextFίle). Служит для открытия текстового файла для добавления текста.
  5. Read(F, V1 $[$, V2, ..., Vn $]$). Начиная с текущей позиции, выполняет чтение из типизированного файла последовательно расположенных компонентов в переменные V1, V2, ..., Vn.
  6. Read(var F: TextFίle; V1 $[$, V2, ..., Vn $]$ ). Начиная с текущей позиции, выполняет чтение из текстового файла символов или строк в переменные V1, V2, ..., Vn.
  7. Wrίte(F, V1 $[$, V2, ..., Vn $]$). Начиная с текущей позиции, выполняет запись в типизированный файл значений V1, V2, ..., Vn.
Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 14.10.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot