Н. Джехани - Язык Ада (1988) (1160771), страница 119
Текст из файла (страница 119)
14.2.4. ПРЯМОЙ ВВОД-ВЫВОД В этом разделе описаны операции для прямого ввода и вывода. При применении любой из этих операций к файлу, который не открыт, возбуждается исключение ЗТАТ08 ЕЯЯОЯ. рпкеЬге ЙЕАО(Р!СЕ г 1п Р1СЕ ТУРЕ; )ТЕМ: ои ЕСЕМЕМТ ТУРЕ; РВОМ: )и РОЗ!Т!ЧЕ СООМТ); ргосевпк ЯЕАО(Е1сЕ; (п ЯСЕ ТУРЕ; !ТЕМ: опг Н.ЕМЕМТ ТУРЕ): ЗТАТОЗ ЕЙЯОЯ МООЕ ЕННОН МАМЕ ЕЙВОН ОЗЕ ЕййОВ ОЕЧ1СЕ ЕЙЯОВ ЕМО ЕЯНОН ОАТА ЕВВОЯ : ессервоп : ексереоп : ассар!Ьп : вссереоп : ассар!Ьп : ессереоп ; ассар!1ои геиапгас Ю ЕХСЕРТ10МЗ.ЗТАТОЗ ЕййОЯ; геиьпес Ю ЕХСЕРТЮМ5.МООЕ ЕНЯОН; кивков 10 ЕХСЕРТЮМЗ.МАМЕ ЕййОН; геленке Ю ЕХСЕРТЮМЗ.ОЗЕ ЕЯНОН; гепакеа 10 ЕХСЕРТ)ОМЗ.ОЕЧ!СЕ ЕййОН; гепагиее Ю ЕХСЕРТЮМЗ.ЕМО ЕННОН; гепеппп Ю ЕХСЕРТЮМЗ.ОАТА ЕВВОЙ; 488 Ввод.вывод Оперируют над файлами вида (М Р)ЕЕ или )МООТ Р)ЕЕ.
Первая иэ операций предвари. тельно устанавливает текущий индекс данного файла равным значению параметра РВОМ. Затем (для обеих подпрограмм) через параметр (ТЕМ возвращает значение элемента файла, позиция которого задана текущим индексом файла; наконец, увеличивает текущий индекс на единицу. Если вид данного файла — ООТ Р)ЕЕ, то возбуждается исключение МОСЕ ЕЯЙОВ.
Если используемое при чтении значение индекса оказалось больше размера внешнего файла, то возбуждается исключение ЕМО ЕЙНОЙ. Если прочитанный элемент нельзя интерпретировать как значение типа ЕЕЕМЕМТ ТУРЕ, то возбуждается исключение ВАТА ЕВВОВ; однако для реализации допустимо опускать такую проверку в случае, если она слишком сложна. ргосойио УУЙ!ТЕ(Е!ЬЕ: )и РН.Е ТУРЕ; !ТЕМ; Ь ЕЬЕМЕМТ ТУРЕ.
ТО: !и РОЗ)Т)ЧЕ СООМТ); рикейио ууй)ТЕ(НЕЕ: )и Е!сЕ ТУРЕ; )ТЕМ: Ь ЕсЕМЕМТ ТУРЕ); Оперируют над файлами вида )ЙООТ Р1ОЕ или ООТ Р)ЕЕ. Первая из операций предварительно устанавливает индекс данного файла равным значению параметра ТО. Затем (для обе. их подпрограмм) элементу данного файла, позиция которого указана текущим индексом, присваивается значение параметра )ТЕМ; наконец, увеличивается текущий индекс на единицу. Если вид данного файла — )Й Р(ЕЕ, то возбуждается исключение МООЕ ЕЙВОВ.
Если внешний файл заполнен до конца, то возбуждается исключение ОЗЕ ЕВВОВ. риикоик ЗЕТ )МОЕХ(Е!ЬЕ: 1и Е)сЕ ТУРЕ; ТО: (и РОЗ!Т1ЧЕ СООМТ); Оперирует над файлом любого вида. Устанавливает текущий индекс данного файла равным значению параметра ТО (которое может превышать текущий размер файла). Ьисвои )ЙОЕХ(Е(сЕ: 1и Е)ЬЕ ТУРЕ) иного РОЗ(Т!ЧЕ СООМТ; Оперирует над файлом любого вида. Возвращает текущий индекс данного файла. аикеои $12Е(йсЕ: Ь ЕльЕ ТУРЕ) кьги СООМТ; Оперирует над файлом любого вида. Возвращавт текущий размер внешнего файла, связанного с данным файлом.
Ьисвои ЕМО ОЕ НЕЕ(Е)сЕ: )и НЕЕ ТУРЕ) кеии $001.ЕАМ; Опврирует над файлом вида )М Р(ЕЕ или 1ЙООТ Р)ЕЕ. Если значение текущего индекса больше размера внешнего файла, то возвращает значение ТВОЕ, в противном случае — РАЕЗЕ. Если вид данного файла — ООТ Р)(.Е, то возбуждается исключение МОСЕ ЕВВОВ. Ссылки: вид 1Й Р)ЕЕ 14.1, вид )МООТ Р)ЕЕ 14.1, вид файла 14.1, внешний файл 14.1, индекс 14.2, исключение ОАТА ЕЙНОЙ 14.4, исключение ЕМО ЕЙЙОВ 14.4, исключение МОСЕ ЕЙЙОВ 14.4, исключение ЗТАТОЗ ЕЙВОЯ 14.4, исключение ОЗЕ ЕЙНОЙ 14.4, открытый файл 14.1, текущий индекс 14.2, текущий размер 14.2, тип ЕЕЕМЕМТ ТУРЕ 14.1, тип СООМТ 14.2, тип РОЗ)Т(НЕ СООЙТ 14.3, тип Р)ЕЕ ТУРЕ 14.1, файл 14.1, элемент 14.1.
14.2.$. СПЕЦИФИКАЦИЯ ПАКЕТА ПРЯМОГО ВВОДА. ВЫВОДА ччлй Ю ЕХСЕРТЮМЗ; Велик чуре еьемемт туре м рпче)е; ресьове 01ЙЕСТ 10 1 ° )уро е(ье туре м вкпб рпчете; )уре Е)сЕ МООЕ !е ()М Е)ЬЕ, 1МООТ ЕЛ.Е, ООТ Е(ьЕ); суре СООМТ 1 ° голее 0 .. определяется реализацией; еоьтуро Р0$)т)че сООмт !е с00мт савве 1 .. сООмт'1.АЕТ; — управление файлами ричсейие СЙЕАТЕ ( ЕП.Е: (и оо! Е(ьЕ ТУРЕ; МООЕ; и Е)сЕ МООЕ: )МООТ Н1.Е; МАМЕ; (и ЗТЙ)МО ЕОЙМ; Ь ЗТЙ1МО:= "); 16-797 г"ливи 14 ргасаднгв ОРЕМ ( РПЕ: )и онг Н!.Е ТУРЕ; МООЕ: Ь РИ.Е МООЕ; МАМЕ: Ь 5Тй(МО; Роям: ь Зтя)НО:= "1: ргосаднга СЬОЗЕ (Р1ЕЕ: )и онг Й1.Е ТУРЕ); римийна ОЕ1.ЕТЕ (НЕЕ: Ь огл РИ.Е ТУРЕ); Ргосеыга ЯЕ5ЕТ (ЕИ.Е: )и оы Е)ьЕ ТУРЕ; МООЕ: Ь РП.Е МООЕ): ргосайна ЯЕ5ЕТ (ГИ.Е: 1и онг ЙсЕ ТУРЕ); (ЙЬЕ: Ь ЕЮЕ ТУРЕ! гонии Р)ЬЕ МООЕ: (Р)сЕ: (и ГИ.Е ТУРЕ! гагнпг ЗТЙ1МО; (Р!сЕ: 1и Й1.Е ТУРЕ) пинпг ЗТЙ)МО; Ьисяаи МООЕ Ьиеиои МАМЕ агиспои РОЯМ !ниагми 18 ОРЕМ (Р!ЬЕ: Ь Р)ЬЕ ТУРЕ! и!нпг 800ЬЕАМ; — операции ввода и вывода ргосавев ЯЕАО (Р!ьЕ: 1и Н(.Е ТУРЕ; )ТЕМ; он! ЕЕЕМЕМТ ТУРЕ; РВОМ: Р05)Т1ЧЕ СОЦМТ), ргасеани ЙЕАО (Р!сЕ: Ь ЛЬЕ ТУРЕ: )ТЕМ: онг ЕьЕМЕМТ ТУРЕ); носового УЧЯ)ТЕ (Р!ьЕ:!и РП.Е ТУРЕ; )ТЕМ; 1и Е1.ЕМЕМТ ТУРЕ; ТО: РОЗ)Т(ЧЕ СОЦМТ)1 ргосайие ЧУВ!ТЕ (НсЕ: Ь Н1.Е ТУРЕ: НЕМ: Ь Е(.ЕМЕМТ ТУРЕИ ргоее!еа ЗЕТ )МОЕХ(ЯЕЕ: Ь Й1.Е ТУРЕ; ТО; )и РОЗ)Т(ЧЕ СОЦМТ)! Ьпсвои )МОЕХ(Р!ЕЕ: 1и РП.Е ТУРЕ) гонии Р05)Т1ЧЕ СОЧМТ; Ьиааои 812Е (РП.Е: Ь НЕЕ ТУРЕ) гении СОЦМТ; Ьиевои ЕМО ОР Нсв (Н!.Е: Ь РИ.Е ТУРЕ) гаиии $001.ЕАМ; -- исключения : вхсараои гииаееа 1О ЕХСЕРТЮМЗЗТАТ05 Еяяой.
: ехеарваи гелаева Ю ЕХСЕРТЮМЗ.МООЕ ЕЯВОЯ; : ассар!Ьи гонимое Ю ЕХСЕРТЮМЗ.МАМЕ ЕВЯОВ; : ахеврвои гаиагиаа Ю ЕХСЕРТ)ОМЗ.ОЗЕ ЕВВОЙ; : акеараои гвиане Ю ЕХСЕРТ10МЗ.ОЕЧ1СЕ ЕЯЯОЯ; : ехаа1иЬп гималае Ю ЕХсеРТюиз.ем0 еййОй; : емерваи еиаеаа Ю ЕХСЕРТ10М5.ОАТА ЕййОЯ; ЗТАТОЗ ЕййОЙ МООЕ ЕЯЯОВ МАМЕ ЕЯЯОЯ ЧЗЕ ЕЯЯОЯ ОЕЧ)СЕ ЕЯЯОВ ЕМО ЕЯВОЯ ОАТА Еййой )имаго — зависит от реализации аиа 0)ВЕСТ 10; Ссылки: вид СОТ Г(ЕЕ 14.2.1, вид )М Р)ЕЕ 14.2.4, вид ло умолчанию 14.2.8, исключение ОАТА ЕННОН 14.4, исключение ОЕЧ)СЕ ЕЙНОЙ 14.4, исключение ЕМО ЕЙНОЙ 14.4, исключе. нив МОСЕ ЕЙЙОН 14.4, исключение МАМЕ ЕЙЙОН 14.4, исключение ЗТАТ08 ЕЙНОН 14.4, исключение 08Е ЕЙНОЙ 14.4, пакет 1О ЕХСЕРТЮМ 14.4, процедура СЕОЗЕ 14.2.1, процедура СЙЕАТЕ 14.2.1, процедура ОЕ1.ЕТЕ 14.2.1, процедура ОРЕМ 14.2.1, процедура ЗЕТ 1МОЕХ 14.2.4, процедура НЕАО 14.2.4, процедура )МН1ТЕ 142.4, 14.2.1, тил Е1.ЕМЕМТ ТУРЕ 14.2.4, тил СООМТ 14.2, тил ЕИ Е МОСЕ 14.2.8, тип Р(ЕЕ ТУРЕ 14.2.4, файл ввода-вывода 14.2.4, 14.2.1, функция ЕМО ОЕ Н1.Е 14.2.4, функция РВОМ 14.2.1, функция )МОЕХ 14.2.4, функция 18 ОРЕМ 14.2.1, функция МОСЕ 14.2.1, функция МАМЕ 14.2.1, функция 8)ЕЕ 14.2.4.
14.3. ВВОД. ВЫВОД ТЕКСТОВ В этом разделе описывается пакет ТЕХТ Ю, который обеспечивает воэможности ввода и вывода в удобной для читателя форме. Каждый файл читается ипи записывается последовательно посимвольно, символы последовательно группируются в строчки, последователь.
ность строчек — в страницы. В равд. 14.3.10 приведена спецификация этого пакета. Возможности управления файлами, описанные в разд. 14.2.1 и 14.2.2, применимы и для текстового ввода-вывода. Однако вместо процедур ЙЕАО и ЧУЙ(ТЕ используются процедуры ОЕТ и РОТ, которые осуществляют ввод и вывод значений соответствующих типов для твксто вых файлов. Эти значения передаются процедурами РОТ и возвращаются процедурами НЕТ через параметр )ТЕМ. Существует несколько совмещенных процедур с такими именами, но с 487 Ввод.
вывод различными типами параметра (ТЕ(Ш. Процедуры 6ЕТ анализируют вводимые последовательности символов как лексемы (см. гл. 2] и возвращают соответствующие значения; процедуры РОТ выводят данные значения в виде соответствующих лексем. Процедуры 6ЕТ и РОТ могут также вводить и выводить отдельные символы, рассматриваемые не как лексемы, а как эна. чения символьного типа. Для числового и перечислимого типов параметра ]ТЕМ помимо процедур РОТ и 6ЕТ, записывающих в текстовой файл или читающих из него, существуют аналогичные процедуры с параметром типа ВТЯ(М6. Эти процедуры производят точно такие же анализ и формирование последовательности символов, как и подобные им процедуры с файловым параметром. Для всех процедур 6ЕТ и РОТ, оперирующих над текстовыми файлами, а также для многих других подпрограмм существуют формы как с параметром файлового типа, так и без него.
Каждая процедура 6ЕТ оперирует над файлом ввода; каждая процедура РОТ вЂ” над файлом вывода. Если файл не задан, то работа производится над файлом ввода по умолчанию или нвд файлом вывода по умолчанию. В начале выполнения программы файлами ввода и вывода по умолчанию являются так называемые стандартный файл ввода и стандартный файл вывода. Эти файлы всегда открыты и имеют текущие виды ]М Е(ОЕ и СОТ Р((.Е соответственно, они связаны с двумя опреде. пяемыми реализацией внешними файлами.
Существуют процедуры дпя замены текущего файла ввода по умолчанию и текущего файла вывода по умолчанию. Логически текстовой файл представляет собой последовательность страниц, страница— последовательность строчек, а строчка — последовательность символов; конец строчки помечается признаком конца строчки; конец страницы помечается комбинацией признака конца строчки, за которым непосредственно следует признак конца страницы; конец файла помечается комбинацией следующих непосредственно друг эа другом признака конца строчки, признака конца страницы и признака конца файла.