Создайте базу данных, используя файл типизированных файлов Delphi

Проще говоря, файл является двоичная последовательность какого-то типа. В DelphiЕсть три класса файл: типизированный, текстовый и нетипизированный. Типизированные файлы - это файлы, которые содержат данные определенного типа, такие как Double, Integer или ранее определенный пользовательский тип записи. Текстовые файлы содержат читаемые символы ASCII. Нетипизированные файлы используются, когда мы хотим наложить на файл как можно меньшую структуру.

Типизированные файлы

В то время как текстовые файлы состоят из строк, оканчивающихся на CR / LF (#13#10) комбинация, типизированные файлы состоят из данных, взятых из определенного типа структуры данных.

Например, следующее объявление создает тип записи с именем TMember и массив переменных записи TMember.

тип

 TMember = запись

 Имя: строка[50];

Эл. адрес:
строка[30];

Сообщения: LongInt;
конец;

вар Пользователи: массив[1..50] из TMember; 

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

instagram viewer
вар F: файл из TMember; 

Примечание. Для создания типизированного файла в Delphi мы используем следующее синтаксис:

вар SomeTypedFile: файл из SomeType

Базовый тип (SomeType) для файла может быть скалярным типом (например, Double), типом массива или типом записи. Это не должно быть длинной строкой, динамическим массивом, классом, объектом или указателем.

Чтобы начать работать с файлами из Delphi, нам нужно связать файл на диске с файловой переменной в нашей программе. Чтобы создать эту ссылку, мы должны использовать AssignFile процедура, чтобы связать файл на диске с файловой переменной.

 AssignFile (F, 'Members.dat') 

Как только связь с внешним файлом установлена, файловая переменная F должна быть «открыта», чтобы подготовить ее к чтению и записи. Мы вызываем процедуру Reset, чтобы открыть существующий файл, или Rewrite, чтобы создать новый файл. Когда программа завершает обработку файла, файл должен быть закрыт с помощью процедуры CloseFile. После закрытия файла связанный с ним внешний файл обновляется. Затем переменная файла может быть связана с другим внешним файлом.

В общем, мы всегда должны использовать Обработка исключений; Многие ошибки могут возникнуть при работе с файлами. Например: если мы вызываем CloseFile для файла, который уже закрыт, Delphi сообщает об ошибке ввода-вывода. С другой стороны, если мы пытаемся закрыть файл, но еще не вызвали AssignFile, результаты непредсказуемы.

Записать в файл

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

вар

 F: файл из TMember;

я: целое число;
начать

 AssignFile (F, members.dat);

 Переписать (F);

пытаться

за j: = 1 в 50 делать

 Написать (F, Члены [j]);

наконец

 Закрыть файл (F);

конец;конец; 

Читать из файла

Чтобы извлечь всю информацию из файла members.dat, мы использовали бы следующее код:

вар

 Участник: TMember

 F: файл из TMember;начать

 AssignFile (F, members.dat);

 Сброс (F);

пытаться

в то время как не Eof (F) начать

 Читать (F, Участник);

{DoSomethingWithMember;}

конец;

наконец

 Закрыть файл (F);

конец;конец; 

Замечания: Eof - это функция проверки EndOfFile. Мы используем эту функцию, чтобы убедиться, что мы не пытаемся читать за пределами конца файла (за пределами последней сохраненной записи).

Поиск и позиционирование

К файлам обычно обращаются последовательно. Когда файл читается с использованием стандартной процедуры Read или записывается с использованием стандартной процедуры Write, текущая позиция файла перемещается к следующему численно упорядоченному компоненту файла (следующая запись). К типизированным файлам также можно получить произвольный доступ с помощью стандартной процедуры Seek, которая перемещает текущую позицию файла в указанный компонент. FilePos и Размер файла Функции могут использоваться для определения текущей позиции файла и текущего размера файла.

{вернуться к началу - первая запись}

 Искать (F, 0);


{перейти к 5-й записи}

 Искать (F, 5);


{Перейти к концу - «после» последней записи}

 Seek (F, FileSize (F)); 

Изменить и обновить

Вы только что узнали, как писать и читать весь массив участников, но что, если все, что вы хотите сделать, это обратиться к 10-му члену и изменить адрес электронной почты? Следующая процедура делает именно это:

процедура Изменить e-mail(Const RecN: целое число; Const Новый E-mail: строка) ;вар Фиктивный член: Участник;начать

{назначить, открыть, блок обработки исключений}

 Seek (F, RecN);

 Читать (F, DummyMember);

 DummyMember. Email: = NewEMail;

{читать переходит к следующей записи, мы должны

вернуться к исходной записи, затем написать}
 Seek (F, RecN);

 Написать (F, DummyMember);

{закрыть файл}конец;

Завершение задачи

Вот и все - теперь у вас есть все, что вам нужно для выполнения вашей задачи. Вы можете записать информацию об участниках на диск, вы можете прочитать ее обратно и даже изменить некоторые данные (например, электронную почту) в «середине» файла.

Важно то, что этот файл не является ASCII файлвот так это выглядит в Блокнот (только одна запись):

 .Delphi Guide g Ò5 · ¿ì. 5.. B V.Lƒ, „[email protected]Ï.. ç.ç.ï.. 

instagram story viewer