metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 36
Текст из файла (страница 36)
Например, кодсимвола || = 186 и размещение в списке данных #186 выведет символ ||. Для выводатого же символа можно поместить в список данных для вывода само значение символав апострофах: ||. Очевидно, третий способ вывода символа псевдографики на экраннаиболее лаконичен. Коды символов псевдографики даны в табл. 4.2.Пример трех разных способов вывода строки результатов с разделительнымилиниями между значениями различных граф таблицы: с помощью CHR, кодами с # исимволами:WRITELN ( FR, CHR(186), NZ: 10, CHR(179): 8,' ', GR, CHR(179): 2, 1', FIO, CHR(179): 13- LENGTH(FIO), RS : 9 : 2, CHR(186): 4 );WRITELN ( FR, #186, NZ: 10, #179: 8, ' ', GR,#179: 2,1', FIO, #179: 13 - LENGTH(FIO), RS : 9 : 2, #186 : 4 );WRITELN ( FR,' ||', NZ: 10, '|' :8, '', GR, 4':2,1' ', FIO, 'I: 13 - LENGTH (FIO), RS : 9 : 2, ' ||' : 4 ) ;Результат вывода данных одной строки таблицы:|| 88103| ЭВМ1-1 | ИВАНОВ И.И.
| 4000.00 ||Процедуры и функции для работы с текстовыми файламиДля работы с текстовыми файлами можно использовать процедуры и функции:Assign, открытия и закрытия файлов, Eoln и SeekEoln, Eof и SeekEof, Erase, lOResult,164ReName. Процедуры и функции Assign, открытия и закрытия файлов, Eof, Erase,lOResult и ReName рассмотрены в разд. 3.1. Рассмотрим функции Eoln, SeekEolnи SeekEof.Функция Eoln возвращает значение TRUE, если обнаружен признак конца строки,и значение FALSE в противном случае.
Функция SeekEoln аналогична функции Eoln,за исключением того,что она пропускает все пробелы и знаки табуляции до признакаконца строки или до первого значащего символа. Форма обращения к функциям: Eoln(файловая-переменная); SeekEoln (файловая-переменная).Например: Eoln(FILE1); SeekEoln ( FILE1 );Функция SeekEof аналогична функции Eof (см. разд.
3.1) за исключением того, чтоона пропускает все пробелы, признаки табуляции и конца строки до признака концафайла или до первого значащего символа. SeekEof возвращает значение TRUE, еслидостигнут конец файла, и FALSE в противном случае. Например, если в текстовомфайле после последней строки с данными была пустая строка, то она пропускает ее ивыдает значение TRUE - признак наличия ситуации "конец файла".
Форма обращенияк функции: SeekEof (файловая-переменная);Например: SeekEof ( FILE1 );.Если после имени любой из названных функций нет ни скобок, ни имени файловойпеременной, по умолчанию принимается INPUT — имя стандартного файла.Например: Eoln; SeekEoln; SeekEof;.Пример работы с текстовым файлом дан в разделе 10.5.Типизированные файлыОсновные понятияТипизированные файлы используются для хранения данных типа компонентовфайла, определенных при его объявлении. Типизированные файлы могут содержатьданные любых типов, кроме файловых.
Все компоненты типизированного файла имеютодинаковую длину. Это дает возможность организовать прямой доступ к каждомукомпоненту файла.Ввод-вывод данных типизированных файлов производится с помощью процедурRead и Write. Переменные в списках ввода-вывода должны иметь тот же тип, что икомпоненты файла.Связь логического файла программы с файлом на МД производится с помощьюпроцедуры Assign. Открытие файлов - с помощью процедур Reset и Rewrite. Послеоткрытия файла перед первым обращением к процедурам ввода-вывода указатель файластоит в его начале и указывает на первый компонент с номером 0. После каждогочтения или записи указатель сдвигается к следующему компоненту файла.
Еслипеременных в списках ввода-вывода несколько, указатель будет смещаться послекаждой операции обмена данными, т. е. после ввода или вывода каждого компонентафайла.Файловая переменная типизированного файла должна быть объявлена следующимобразом: Файловая-переменная = FILE OF тип-компонентов;Пример объявления файловой-переменной для типизированного файла:TYPE165ST1 = STRING[12];STRC = RECORD{ Поля записи: }NZ : 88100 . .• 88200; { - номер зачетки )GR : STRING[6];{ - группа }FIO : ST1;{ - фамилия }RS : REAL;{ - размер стипендии } END;FL = FILE OF STRC; { - имя типа типизированного файла }VAR Z : STRC; { - переменная типа STRC }FI : TEXT; { - файловая переменная текстового файла }F : FL ; { - файловая переменная типизированного файла }{ Или: F : FILE OF STRC; }Ввод данных из типизированного файла.Процедура ReadПроцедура Read обеспечивает ввод (копирование) данных из типизированного файлав ОП переменных, определенных в списке данных оператора.
Форма обращения кпроцедуре Read:Read (файловая-переменная, список-данных );где файловая-переменная должна быть объявлена как переменная типа файла,содержащего определенный тип компонентов;список-данных - последовательность имен переменных, разделенныхзапятыми, того же типа, что и компоненты файла.Например: Read ( F, Z ) ; — читать из файла F в запись Z.Для чтения данных из файла он должен быть объявлен, создан, связан сфизическим файлом с помощью Assign и открыт с помощью процедуры Reset.
Схемаалгоритма процедуры СНТ — чтения данных из файла F:СНТКонецСНТ‘Чтениефайла’Открытиефайла длячтенияКонец файла FВвод данныхиз Z в FРПример фрагмента программы, вызывающей СНТ, и вывода из нее с помощьюпроцедуры Р содержимого Z — записей файла:Процедура СНТ и ее вызов.PROCEDURE СНТ;BEGINWRITELN (' ЧТЕНИЕ ФАЙЛА ') ; RESET ( F ) ; { - открытие файла }REPEAT166READ ( F, Z ); Р; { - чтение и вывод записи }UNTIL EOF ( F }; CLOSE ( F ); { - закрытие файла F }END;BEGIN{ Связывание F с физическим файлом: }ASSIGN ( F, 'FLR6.REZ' );СНТ;{ − вызов процедуры чтения }END.Текст процедуры Р содержит вызов процедуры WRITELN, примеры которойприведены при рассмотрении текстовых файлов.Чтение данных из файла производится до появления ситуации EOF(F).Использование процедуры Read после исчерпания всех данных файла вызовет ошибкуввода-вывода.В алгоритме и примере используются идентификаторы:СНТ — имя процедуры чтения данных из файла;Р - имя процедуры для вывода данных записиZ; F - имя типизированного файла с записями;Z − имя записи для компонентов типизированного файла F.Вывод данных в типизированный файл.Процедура WriteПроцедура Write используется для вывода (копирования) данных из ОП и их записив типизированный файл на МД.
Форма обращения к процедуре:WRITE ( файловая-переменная, список-данных ) ;где файловая-переменная - имя файла программы, содержащего определенный типданных - компонентов файла;список данных - список, содержащий одно и более выражений, результат которыхтого же типа, что и компоненты файла; частным случаем выражения может быть имяпеременной.Например: WRITE ( F, Z ); - вывод записи Z в файл F.Назначение файлу FIDфизического файла сименем из переменной NFZF (NF)PОткрытие файловFID и F.Присоединение к ZДаВыводданных изZиFКонецфайла FIDНетЗакрытиефайловFID и FВводданных изFID в ZКонецZF167Схема алгоритма процедуры ZF – записи данных в файлДля записи в типизированный файл он должен быть объявлен, связан с файлом наМД процедурой Assign и открыт.
После открытия файла процедурой Rewrite можновыполнять запись данных в файл, т. е. использовать процедуру Write. После открытиясозданного типизированного файла процедурой Reset можно выполнять чтение данныхиз файла и запись данных в файл, например для корректировки данных или дополненияфайла новыми записями. Схема алгоритма процедуры ZF − записи данных в файл F сиспользованием процедуры Write:Процедура записи данных в типизированный файл.PROCEDURE ZF ( NF : ST10 ) ;VAR FID : TEXT; В : CHAR;BEGINASSIGN (FID, NF); RESET(FID); { Открытие файла с данными }REWRITE ( F );{ Открытие типизированного файла }WITH Z DOBEGIN{ Присоединение к записи }WHILE NOT SEEKEOF ( FID ) DO{ Анализ конца данных }READLN ( FID, NZ, B, GR, B, FIO, RS ); { Ввод данных из FID в Z }P; WRITE ( F, Z ); { Вывод данных из Z в текстовый файл и в файл F }END;CLOSE ( FID ); CLOSE ( F );{ Закрытие файлов }END;{ Конец процедуры ZF }В примере программы используются переменные:NF – имя строковой переменной (формального параметра), содержащей имяфизического файла с исходными данными для записи их в файл F;FID – имя файловой переменной текстового файла с исходными данными длясоздания файла F;F – имя типизированного файла, содержащего записи Z;Z – имя записи, содержащей данные для типизированного файла;NZ, GR, FIO, RS – имена вводимых элементов записи Z.Процедуры и функции для работы с типизированными файламиДля работы с типизированными файлами, кроме процедур Assign, открытия изакрытия файлов, ввода и вывода данных, можно использовать процедуры и функции:Eof, Erase, ReName, loResult, Seek, FileSize, FilePos и Truncate.














