Delphi. Работа с типизированными файлами

Текстовый файл

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

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

Файлы, у которых указывается тип элементов называются типизированными. Все компоненты такого файла имеют общее имя, а каждый элемент еще имеет свой номер. Нумерация компонентов начинается с 0. Так как длина любого компонента типизированнного файла строго постоянна, это дает возможность организовать прямой доступ к каждому из них (то есть доступ к компоненту по его порядковому номеру). С каждым таким файлом можно связать понятие текущий указатель - неявная переменная, которая указывает на конкретный элемент файла.

Работа с элементами типизированного файла

  1. Seek(файловая переменная, n) - устанавливает текущий указатель на элемент n. Пример: seek(f1, 3)
  2. FilePos(файловая переменная) - определяет номер элемента, на который смотрит текущий указатель.
  3. FileSize(файловая переменная) - возвращает текущий размер файла

Материал для подготоки к лабораторной работе "Создание многооконного приложения"

Создать приложение, в котором будут добавляться данные из формы в типизированнный файл. Стуктура записи следующая.
TStud - имя записи
FIO - фамилия студента
Ngr - номер группы
Кроме этого ннебходимо создать вспомогательный модуль и подключить его к основной программе. В этом модуле будет описываться переменная типа запись и типизированный файл, состоящий из записей.
Создаем новый модуль (файл основной программы Unit2.pas): File-New-Unit.
Перед разделом implementation вставляем разделы type и var.
Type TStud = record
FIO: String[25];
Ngr: String[5;
End;
Var Stud: TStud;
f1: file of TStud;
view raw Unit2.pas hosted with ❤ by GitHub
Предварительно подготовить пустой файл. В обработчике события кнопки "Добавить":
...
begin
Assign(f1, 'f1.dat');
Reset(f1);
Seek(f1, FileSize(f1));
Stud.FIO:=Edit1.Text;
Stud.Ngr:=Edit2.Text;
Write(f1, Stud);
CloseFile(f1);
end;
view raw Unit1.pas hosted with ❤ by GitHub

Комментарии

Популярные сообщения