Процедуры и функции для работы с типизированными файлами

Оглавление

Типизированные файлы.. 1

Процедуры и функции для работы с типизированными файлами. 2

Примеры решения задач. 3

Контрольные вопросы.. 5

Лекция №25

Типизированные файлы, их назначение и использование. Основные процедуры обработки типизированных файлов.

Формат описания TYPE <имя>=FILE OF <тип элементов> VAR < имя файла > : <имя>

Процедуры и функции для работы с типизированными файлами

Seek (МуFilе, 0); - устанавливает указатель в начальной позиции (на первый элемент). Seek (МуFilе, FileSize(МуFilе)); - устанавливает указатель после последнего… Примечание. Функция FileSize(МуFilе) возвращает количество элементов типизированного файла МуFilе. Текущую позицию…

Примеры решения задач

Задача 1. Дан файл, элементами которого являются целые числа. Найти среднее арифметическое элементов файла.

В примере решается задача считывания элементов из файла, их суммирование и нахождение среднего арифметического. Предполагается, что типизированный файл уже создан.

Задание. Дополните содержание текста задачи созданием типизированного файла file.dat. Добавленные строчки программы прокомментируйте.

Program Srednee;

Uses

Crt;

Var

Kol,

Element,{переменная для хранения очередного элемента файла}

Summa {переменная для хранения суммы элементов файла}:integer;

f : file of integer;

SrAriph : real

Begin

ClrScr;

assign(f,'file.dat');{связываем файловую переменную f с физическим файлом file.dat}

reset(f);{открываем файл для чтения}

Summa :=0;{обнуление суммы}

while not Еof(f) do{просматриваем файл до конца}

begin

read(f,Element);{считываем из файла очередной элемент в переменную Element}

Inc(Kol);{увеличиваем счетчик количества элементов файла}

Inc(Summa,Element);{увеличиваем переменную Summa на Element}

end;

SrAriph := Summa/Kol{вычисляем среднее арифметическое чисел}

write('Среднее арифметическое элементов файла равно ',SrAriph:5:2);

close(f);{закрываем файл}

readln;

End.

Задача 2. Наберите на компьютере текст программы. Сформулируйте решаемую в ней задачу. Дополните необходимыми операторами и комментарием.

Program FileString;

Uses Crt;

Var f, g : file of string;

str1, str : string;

i : integer;

Begin

ClrScr;

assign(f,'f'); rewrite(f);

assign(g,'g'); rewrite(g);

repeat

readln(str); write(f,str);

for i:=length(str) downto 1 do str1:=str1+str[i];

write(g,str1);

str1:='';

until str='';

close(f); close(g);

assign(f,'f'); reset(f);

assign(g,'g'); reset(g);

while not eof(f) do

begin

read(f,str);

writeln(str);

end;

while not eof(g) do

begin

read(g,str); writeln(str);

end;

close(f); close(g);

readln;

End.

Задача 3. Создать типизированный файл, содержащий информацию о работниках института.

Задание. Дополнить текст программы нахождением среднего стажа работы в институте; выводом фамилий работников, работающих инженерами; выводом фамилий работников, начинающихся с заданной пользователем буквы; выводом фамилий работников, у которых оклад больше заданного пользователем числа; выводом фамилий работников предпенсионного возраста.

Program TipRecord;

Uses Crt;

Type Dann=record

stag : byte;

Surname, WorkName : string;

Oklad, Year : integer;

End;

Var Spisok : file of Dann; {файл типа записи Dann}

Man : Dann; {переменная типа записи Dann для работы с файлом}

Name : string[12]; {строка для хранения имени физического файла}

Procedure VvodZap (Nomer : integer);

Begin

with Man do

begin

writeln('Введите данные ',Nomer,'-го работника');

write('Фамилия: ');

readln(Surname);

write('Год рождения:');

readln(Уear);

write('Стаж работы:');

readln(stag);

writeln('Должность:');

readln(WorkName);

write('Оклад');

readln(oklad);

write(Spisok ,Man); {записать в файл созданный элемент Man}

end;

End;

Procedure FileVvod;

Var

i, count : Integer;

Begin

write('Введите имя файла данных:');

readln(Name); {имя физического файла}

assign(Spisok ,Name); {связываем файловую переменную с файлом}

rewrite(Spisok ); {открываем файл для записи}

write('Введите количество работников:');

readln(count);

for i:=1 to count do

VvodZap(i); {вызов процедуры ввода очередной информации в файл}

close(Spisok ); {закрываем файл}

readln;

End;

Begin

ClrScr;

FileVvod;

readLn;

End.

Контрольные вопросы

1. Дать определение типизированному файлу и файловой переменной. Опишите формат файловой переменной для типизированных файлов.

2. Перечислить процедуры и функции для работы с файлами. Опишите стандартные процедуры и функции обработки данных типизированного файла.