- •Лабораторная работа №9 Комбиированный тип - запись Тип данных – Запись
- •Формат определения типа.
- •Правила создания записного типа
- •Представление переменной типа запись в памяти
- •Доступ к значению поля в записи
- •Расчет объема памяти, выделяемого переменной типа запись
- •Требования к выполнению лабораторной работы
- •Варианты заданий
- •Пример разработки одномодульного приложения.
- •Контрольные вопросы
- •Лабораторная работа 10 Разработка приложений под Windows средст вами Delphi Создание оконного приложения
- •Требования к выполнению лабораторной работы
- •Контрольные вопросы
- •Лабораторная работа №11 Объектно-ориентированное программирование Определение класса
- •Наследование
- •Требовния к выполнению лабораторной работы
- •Варианты заданий
- •Контрольные вопросы.
- •Лабораторная работа №12 файлы Текстовый файл
- •Типизированный файл
- •Требования к выполнению лабораторной работы
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
Типизированный файл
Типизированный файл - это файл, в котором записаны идентичные структуры. Типизированный файл можно создать только программным путем. Он состоит из записей фиксированной длины. Содержимое файла - это машинное представление данных. Типизированные файлы так же называют двоичными т.к. они содержат информацию в двоичном коде. С каждым типизированным файлом связана переменная - указатель. Указатель определяет смещение от начала файла в количестве прочитанных или записанных записей. При открытии файла значение указателя равно нулю, т.е. не выполнено ни одной операции ввода/вывода. Если только одна запись записана или прочитана, то значение указателя равно единице.
Формат объявление файловой переменной
Var
Имя ф.п.: file of Тип записи файла;
Тип записи это любой тип языка Pascal кроме файлового.
Операции над типизированным файлом
1) Назначение файловой переменной физического файла
Это связывание файловой переменной с файлом. Осуществляется аналогично связыванию для текстовых файлов. Связь файловой переменной с файлом устанавливается с помощью процедуры Assingfile.
Формат процедуры:
Assingfile(файловая переменная, имя файла);
2) Создание файла
Создание типизированного файла осуществляется процедурой Rewrite(Ф.п.).
Пример
Var
F: file of integer;
Begin
Assignfile(F,’A.Dat’);
Rewrite(F);
End.
После выполнения программы в текущей папке появится файл A.dat. При открытии существующего файла процедурой Rewrite (файловая переменная ) файл удаляется. Открытый этой процедурой файл допускает выполнение операции чтения и записи.
3) Открыть существующий для чтения и записи
При открытии типизированного файла процедурой Reset(Ф.п.) данные файла доступны для чтения, но открытый таким образом файл допускает выполнение операции записи в файл.
4) Чтение данных из файла
Осуществляется процедурой
Read(Ф.п., Список переменных);
Переменные в списке должны быть того же типа что и тип файла.
Пример использования процедуры read
Var
F: file of integer;
A:integer;
B:real;
Begin
Assignfile(F,’A.Dat’);
Reset(F);
Read(F,A);
Read(F,B); //Это будет ошибка т.к. тип переменной и файла различен.
End.
5) Записать в файл
Осуществляется процедурой
Write(ф.п., список переменных);
Переменные в списке должны быть того же типа что и тип файла
Пример
Var
F: file of integer;
A:integer;
B:real;
Begin
Assignfile(F,’A.Dat’);
Rewrite(F);
A:=5;
Write(F,A);
End.
6) Закрытие файла
Осуществляет процедура Closefile(Ф.п.). После выполнения этой операции доступ к данным файла невозможен, но связь файловой переменной и с физическим файлом сохраняется.
7) Определение кол-во записей в файле.
. В типизированных файлах не рекомендуется использовать функцию Eof. При обработке всех записей файла, следует использовать функцию Filesize(ф.п.):Longint, которая возвращает количество записей в файле.
Пример
Прочитать и вывести все записи файла.
Var
F: file of integer;
A,i:integer;
Begin
Assignfile(F,’A.Dat’);
Reset(F);
For I:=1 to filesize(F)-1 do
Begin
Read(F,A);
Write(A,’ ‘)
End;
End.
8)Определение позиции в типизированном файле
Осуществляет процедура filepos(Ф.п.):longint. Она возвращает номер записи в файле, к которой будет применяться операция ввода/вывода.
Пример
Var
F: file of integer;
A:integer;
Begin
Assignfile(F,’A.Dat’);
Reset(F);
Read(F,A);
Write(Filepos(F)); //результат равен 1( позиция первая )
End.
9) Организация прямого доступа
В типизированных файлах можно выполнять операции чтения и записи к записям с произвольным номером, не выходящим за количество записей файла. Эту операцию выполняет процедура Seek(Ф.п.,N). Ее действие: осуществляет перемещение указателя в позицию N. N - это значение целого типа.
Примеры использования процедуры
Seek(F,0); //Указатель перемещается в положение 0 т.е. доступна первая запись файла
Seek(F,Filesize(F)); //Переместит указатель в конец файла (за последнюю запись )
Seek(F,5); //Указатель установится перед пятой записью.