Здавалка
Главная | Обратная связь

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



Пусть требуется составить программу, которая создает нетипизированный файл из 100 вещественных чисел и выводит на экран k-й элемент файла. Проиллюстрируем обработку созданного файла двумя разными способами: поиск элемента в файле данных прямого доступа по его номеру и поиск элемента в файле данных с последовательным доступом.

В разделе описания переменных опишем файловую переменную F, представляющую в программе нетипизированный файл вещественных чисел; вещественную переменную Р, которой будет присваиваться значение очередного элемента файла при заполнении файла случайными вещественными числами и искомого элемента файла; целую переменную типа byte К, значения которой будут указывать на номер элемента в файле.

Program UnTyped_File;

Uses Crt;

Var

F : File of real;

P : real;

К : byte;

procedure Mak_file; {Создание файла вещественных чисел}

begin

Assign(F,'a.dat') ;

Rewrite(F) ; {Открыть файл для записи}

Randomize;

for K:=l to 100 do

begin

P:=Random(100) ;

Write(F,P) ; {Записать в файл значение К-го элемента}

end;

Writeln('Создание файла вещественных чисел завершено');

Close(F); {закрыть файл}

end; {конец процедуры Mak_file}

procedure Find_Elem; {Поиск элемента в файле прямого доступа по его номеру}

begin

Assign(F,'a.dat');

Write('Введите номер нужного элемента ');

Readln(К) ;

Reset(F) ;

Seek(F,K-l); {Переместить указатель обработки на К-1-й эле­мент}

Read(F,P); {Присвоить значение элемента, на который указывает указатель обработки переменной Р}

Writeln(K,'-й элемент файла ',Р:6:2) ;

Close(F) ;

end; {процедура Find_Elem}

procedure Find_Fil_P; {Поиск элемента в файле последовательного доступа}

var N : byte;

begin

Assign(F,'a.dat');

Write('Введите номер нужного элемента ');

Readln(К) ;

Reset(F) ;

N:=0; {Поместить указатель обработки в начало файла}

While not Eof(F) do {Повторять, пока не будет просмотрен весь файл}

begin

Read(F,P); {Чтение элемента и смещение указателя обработки вправо на один элемент}

if N=K-1 then {Найден элемент с искомым номером}

begin

Writeln(K,'-й элемент файла равен ',Р:6:2);

Exit; {Прервать поиск, так как элемент найден}

end;

N:=N+1; (Увеличить числа элементов файла на 1}

end;

Close(F);

end ; {конец процедуры Find_Fil_P}

Begin {Основная программа}

Mak_file; {Вызов процедуры создания файла вещественных чисел}

Find_Е1еm; {Вызов процедуры поиска элемента в файле прямого доступа}

Find_Fil_P; {Вызов процедуры поиска элемента в файле с последовательным доступом}

end.

При обработке файла a.dat как файла прямого доступа для чтения определенного элемента выполняется позиционирование указателя обработки на указанный элемент, а при обработке файла a.dat как файла последовательного доступа перемещение указателя на нужный элемент осуществляется последовательным чтением элементов, начиная с первого, до тех пор, пока указатель обработки не будет установлен на искомый элемент.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.