Лабораторная работа №8 Инициализация и использование в программах типизированных файлов

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Теоретические сведения

Типизированные файлы содержат компоненты одного типа и позволяют осуществлять прямой
доступ к данным.

Пример

Создать типизированный файл, состоящий из данных о студентах (всего не более 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.