© М.Е.Макарова
1.Что такое типизированные файлы? 2.Чем они отличаются от текстовых файлов? 3.В чем преимущества и недостатки типизированных файлов? 4.Какие вы знаете процедуры и функции для обработки типизированных файлов? 5.Какими командами осуществляется ввод и вывод информации в типизированный файл?
Назначение записей. Тип данных Запись (Record) используется в тех случаях, когда необходимо обрабатывать структурированные данные, которые описывают несколько различных свойств объекта. Например, нам надо использовать следующие данные про наших друзей: 1.Фамилия 2.Имя 3.Адрес 4.Телефон Эти данные имеют разный тип. Но из них можно составить структурированный тип данных – запись.
Описание типа данных Record type имя записи = record имя поля 1 : тип поля1; имя поля n : тип поля n ; end; Например: type friends = record Fam : string [ 12 ]; Name : string [ 12 ]; Adress : string [ 25 ]; Telef : string [ 9 ]; end; Структура Друзья Фамилия : строка [ 12 ] Имя : строка [ 12 ] Адрес : строка [ 25 ] Телефон : строка [ 9 ]
Составные имена полей С полями, входящими в запись, можно выполнять те же действия, что и с обычными переменными соответствующего типа. Для обращения к полям записи используют составные имена, части которых разделены точкой: имя записи.имя поля Friends.Fam - фамилия друга Friends. Telef - телефон друга Составные имена могут участвовать в выражениях как обычные переменные: Friends.Telef:= ;
Работа с элементами записи: Использование команды присоединения With With drug do begin writeln ( фамилия); readln ( fam ); writeln (имя); readln ( name); tel := end; With имя записи do begin действия с полями end; Составные имена довольно громоздки. Чтобы иметь возможность обращаться непосредственно к самому пою в записи, используют команду With Например:
Использование записей в типизированных файлах. 1.В разделе описания типов задать тип данных Record 2.В разделе описания переменных объявить переменную этого типа и файл такого типа. 3.В программе сформировать запись в заданную переменную и потом целиком записать ее в файл. 4.При чтении из файла информацию считывать в эту переменную.
Задание 1 Написать программу, которая создает типизированный файл содержащий информацию о друзьях, и потом выводит эту информацию на экран из файла. Количество друзей должно запрашиваться в начале программы.
Program Druzya; uses crt; type friends = record Fam, Name : string[ 12 ]; Date : string[ 8 ]; Adress : string[ 50 ]; Tel : string[ 9 ] end; Var drug : friends; f : file of friends; i,n : integer; Begin Clrscr; assign (f, 'friends.pas'); { Создание файла } Rewrite ( f ); write (Укажите количество друзей '); readln (n);
for i:=1 to n do begin with drug do begin writeln ('Введите фамилию ',i,'-го друга '); readln (Fam); writeln ('Введите имя ',i,'-го друга '); readln (name); writeln 'Введите адрес ',i,'-го друга '); readln (Adress); writeln ('Введите телефон ',i,'-го друга '); readln (Tel); end; write (f, drug); end; close ( f );
writeln(Вывод из файла: '); reset ( f ); for i:=fileSize(f)-1 downto 0 do begin seek ( f, i); read (f, drug); with drug do begin writeln (Fam); writeln (Name); writeln (Adress); writeln (Tel); end; writeln; end; close ( f ); readln; end.