Лабораторная работа №8 Инициализация и использование в программах типизированных файлов
Перейти к навигации
Перейти к поиску
Теоретические сведения
Типизированные файлы содержат компоненты одного типа и позволяют осуществлять прямой доступ к данным.
Пример
Создать типизированный файл, состоящий из данных о студентах (всего не более 100): фио, группа, возраст. Требуется заменить группу "1АС-2" на "2АС-2" и после этого вывести на экран список студентов, возраст которых равен 17.
program TypFile; type zap=Record fio:string[12]; group:string[5]; voz:byte; end; var mas:array[1..100] of zap; f:file of zap; {объявление типизированной файловой переменной } z:zap; n,i:byte; begin write('ВВЕДИ КОЛИЧЕСТВО СТУДЕНТОВ В СПИСКЕ'); readln(n); for i:=1 to n do with mas[i] do begin write('ВВЕДИ ФИО '); readln(fio); write('ВВЕДИ ГРУППУ'); readln(group); write('ВВЕДИ ВОЗРАСТ'); readln(voz); end; assign(f,'d:\TypFile.dat'); rewrite(f); {открыли файл для чтения и для записи} for i:=1 to n do write(f,mas[i]); {после цикла находимся в конце файла} seek(f,0); { ставим указатель текущей записи в начало файла} while not Eof(f) do {пока не конец файла} begin read(f,z); {читаем очередное данное-запись} if z.group='1АС-2' then {и редактируем файл} begin seek(f,FilePos(f)-1);{вернулись на прочитанную запись } z.group:='2АС-2'; write(f,z); {записываем в файл запись, изменяя поле grouр} end; end; seek(f,0); { ставим указатель текущей записи в начало файла} writeln('СПИСОК СТУДЕНТОВ:'); for i:=0 to FileSize(f)-1 do begin read(f,z); with z do if voz=17 then writeln(fio,' ',group); end; close(f); readln; end.
Задания к работе
Измените блок-схемы и программуы вашего варианта из лабораторной работы 4: - данные о багаже должны быть считаны из типизированного файла1, - результаты работы программы записаны в файл2.