Лабораторная работа №8 Инициализация и использование в программах типизированных файлов
Версия от 08:40, 15 апреля 2008; Калентьева Елена (обсуждение | вклад) (Защищена страница «Лабораторная работа №8 Инициализация и использование в программах типизированных файлов» [edit=sysop:move=sysop])
Теоретические сведения
Типизированные файлы содержат компоненты одного типа и позволяют осуществлять прямой доступ к данным.
Пример
Создать типизированный файл, состоящий из данных о студентах (всего не более 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.