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