Пример программы для работы с типизированными файлами
Пусть требуется составить программу, которая создает нетипизированный файл из 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 как файла последовательного доступа перемещение указателя на нужный элемент осуществляется последовательным чтением элементов, начиная с первого, до тех пор, пока указатель обработки не будет установлен на искомый элемент.
Читайте также: b) Пример классического. Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|