Н. Джехани - Язык Ада (1988) (1160771), страница 120
Текст из файла (страница 120)
Признаки конца генерируются во время вывода; либо при вызове специально предусмотренных для этого процедур, либо неявно — как составная часть других операций, например когда для файла заданы ограничения длины строчки, длины страницы или оба этих ограничения. Язык не определяет, что фактически представляют из себя признаки конца; это зависит от реализации, хотя некоторые из описанных ниже процедур могут опознавать или сами генерировать признаки конца, которые не обязаны всегда быть реализованы именно как символы или последовательности символов. Пользователю безразлично, представлены ли в данной конкретнои реализации признаки конца как символы (и если да, то какие именно], так квк он никогда явно не вводит и явно не выводит управляющие символы. Язык не определяет результата ввода или вывода управляющих символов (кроме символа горизонтальной табуляции].
Символы строчки пронумерованы начиная с единицы; номер символа называется номером столбца. Для признака конца строчки также определен номер столбца; его значение на единицу больше числа символов в строчке. Строчки страницы и страницы файла пронумеро. ваны аналогично. Текущий номер столбца — это номер следующего (передаваемого) символа или признака конца строчки.
Текущий номер строчки — зто номер текущей строчки в текущей странице. Текущий номер страницы — зто номвр текущей страницы в файле. Все зти номера являются значениями подтипа Р08]Т(НЕ СООМТ типа СООМТ (нулевое значение типа СООМТ по соглашению используется для специальных целей].
(уре СООМТ ]в гапйе 0 .. определяется реализацией; зоЬ(уре Р08(Т(НЕ СООМТ ]в СООМТ галде 1 .. СООМТ'ЬАВТ; Для файла вывода могут быть авданы максимальная длина строчки и максимальная длн. на страницы. Если они заданы, а значение не помещается на текущей строчке, то автоматически до вывода значения будет начата новая строчка; если далее зта новая строчка не может быть размещена на текущей странице, то автоматически до вывода будет начата новая страница.
Имеются функции для определения максимальной длины строчки и максимальной длины страницы. После открытия файла вида СОТ Р(ОЕ оба этих значения равны нулю; это значит, что длина страницы и длина строчки считаются неограниченными. (Следовательно, весь файл вывода состоит иэ одной строчки, если только не используются подпрограммы явного управления структурой строчак и страниц файла.) Для этих целей служит константа ОМВООМСЕС. Ссыпки: вид СОТ Г(ОЕ 14.1, вид (М Е(ЕЕ 14.1, внешний файл 14.1, последовательный доступ 14.1, процедура 6ЕТ 14.3.5, процедура РОТ 14.3.5, стандартный файл ввода 14.3.2, стандартный файл вывода 14.3.2, текущий файл по умолчанию 14.3.2, тип СООМТ 14.3.10, файл 14.1, читать 14.2.2. Гпввв 14 14.3.1. УПРАВЛЕНИЕ ФАЙЛАМИ Для текстовых файлов допустимы только виды (М ЕП Е и ООТ Е10Е.
К ним также применимы приведенные в равд. 14.2.1 подпрограммы управления внешними файлами и приведен. ная в равд. 14.2.2 функция ЕМО ОЕ Е1ОЕ для последовательного ввода-вывода. Имеется так. же вариант функции ЕМО ОЕ Е1ОЕ, который выдает результат для текущего файла ввода по умолчанию. Указанные процедуры для текстовых файлов характеризуются следующим: ° Процедуры СЙЕАТЕ и ОРЕМ: после открытия файла вида ООТ Е10Е длина страницы и длина строчки не ограничены (имеют по соглашению значение 0). После открытия файла вида 1М Е1ьЕ ипи ООТ Е!ОЕ текущие номера столбца, строчки и страницы устанавливаются равны.
ми единице. ° Процедура СВОЗЕ: если файл имеет текущий вид ООТ Е!ОЕ, а текущая страница еще не завершена, то результат эквивалентен вызову подпрограммы МЕ)М РАВЕ; затем выводится признак конца файла. ° Процедура ВЕЗЕТ: если файл имеет текущий вид ООТ Е1ОЕ, а текущая страница еще не завершена, то результат эквивалентен вызову подпрограммы МЕУУ РАЗЕ; затем выводится признак конца файла. Если новый вид файла — ООТ Е(ьЕ, то длина строчки и длина страницы становятся неограниченными.
Для всех видов файла текущие номера столбца, строчки и страницы устанавливаются равными единице. При попытке изменить вид текущего файла ввода по умолчанию или текущего файла вывода по умолчанию процедура ВЕЗЕТ возбуждает исключение МОСЕ ЕНВОН. Ссылки: вид файла 14.1, вид (М Е(~Е 14.1, вид ООТ ЕП.Е 14.1, внешний файл 14.1, длина страницы 14.3, длина строчки 14.3, исключение МОСЕ ЕЙЙОВ 14.4, признак конца файла 14.3, процедура СВЕАТЕ 14.2.1, процедура ОРЕМ 14.2.1, процедура ВЕЗЕТ 14.2.1, текущий номер столбца 14.3, текущий номер страницы 14.3, текущий номер строчки 14.3, текущий файл ввода по умолчанию 14.3, файл 14.1, функция ЕМО ОЕ Е1ЕЕ 14.2.4, 14.3. 14.3.2. ФАЙЛЫ ВВОДА И ВЫВОДА ПО УМОЛЧАНИЮ Следующие подпрограммы служат для управления файлами по умолчанию, используемыми при отсутствии параметра-файла в процедурах РОТ, ОЕТ или в других описанных ниже операциях текстового ввода-вывода.
ргосоеие ЗЕТ (ПРОТ(Р(ЬЕ: Ь Р(ЬЕ ТУРЕ); Оперирует над файлом вида 1М Е1ЕЕ. Устанавливает текущим файлом ввода по умолчанию файл, заданный параметром ЕП.Е. Если данный файл не открыт, то возбуждается исключение ЗТАТОЗ ЕНВОВ. Если вид данного файла отличен от (М ЕП.Е, то возбуждается исключение МОСЕ ЕВЙОВ.
ргосееого ЗЕТ ООТРОТ(Р(ЬЕ: (и р(ЬЕ ТУРЕ); Оперирует над файлом вида ООТ Е((.Е. Устанавливает текущим файлом вывода по умолчанию файл, заданный параметром Е1ЕЕ. Если данный файл не открыт, то возбуждается исключение ЗТАТОЗ ЕВВОВ. Если вид данного файла отличен от ООТ Е)(.Е, то возбуждается исключение МОСЕ ЕВВОВ. Ьоапое ЗТАМОАНО !ПРОТ геаии Н1.Е ТУРЕ; Возвращает стандартный файл ввода (см. 143), ЬясгЬи ЗТАМОАНО ООТРОТ шеии РП.Е ТУРЕ; Возвращает стандартный файл вывода (см. 14.3).
Ьиавои СОННЕМТ 1МРОТ геаип РтьЕ ТУРЕ; Возвращает текущий файл ввода по умолчанию. Ьиавоо СОННЕМТ ООТРОТ иного Р!ЬЕ ТУРЕ; Возвращает текущий файл вывода по умолчанию. Примечание. Стандартные файлы ввода и вывода не могут быть открыты, закрыты, пере- установлены и уничтожены, потому что в соответствующих процедурах параметр Е!ьЕ имеет вид (п ом(. Ввод.
вывод Ссылки: исключение МОСЕ ЕЙЙОЙ 14.4, исключение ЗТАТ08 ЕЙЯОЙ 14.4, процедура СЕТ 14.3.6, процедура РЦТ 14.3.5, текущий файл по умолчанию 14.3, тип Р)(.Е ТУРЕ 14.1, файл по умолчанию 14.3. 1433. СПЕЦИФИКАЦИИ ДЛИН СТРОЧЕК И СТРАНИЦ Описанные в этом разделе подпрограммы связаны со структурой строчек и страниц фай. ла вида 00Т Р(ЕЕ.
Они оперируют либо над файлом, заданным первым параметром, либо при отсутствии такого параметра над текущим файлом вывода по умолчанию. Эти подпрограммы служат для вывода текста с заданными максимальными длинами строчки или страницы. В этих случаях признаки конца строчки и страницы выводятся неявно и автоматически, по мере необходимости. Когда длины строчки и страницы не ограничены (т.е. когда они имеют по соглашению значение нуль), как в случае заново открытого файла, новые строчки или страни. цы можно начать лишь в результате явного вызова соответствующих подпрограмм.
Во всех случаях, если заданный файл не открыт, то возбуждается исключение ЗТАТ08 ЕЙЙОЙ; если вид этого файла отличен от 00Т Р)(.Е, то возбуждается исключение МОСЕ ЕЙЙОЙ. риквеиге ЗЕТ 0МЕ ЬЕМОТН(р)ЬЕ: 1п Р)ЬЕ ТУРЕ; ТО: Ь СООМТ); рксвеке ЗЕТ ЫМЕ 1.ЕМОТН(ТО: <и СООМТ); устанавливает максимальную длину строчки заданного файла вывода равной числу символов, задаваемому значением параметра ТО. Нулевое значение параметра ТО задает неограниченную длину строчки. Если заданное значение длины строчки не подходит для связанного с ней внешнего файла, то возбуждается исключение 08Е ЕЙЙОй. яосаосге ЗЕТ РАЗЕ <.ЕМОТН (НЕЕ: <п Р<ЬЕ ТУРЕ; ТО: <и СООМТ); яасвеогв ЗЕТ РАВЕ аЕМОТН (ТО: 1п СООМТ); Устанавливает максимальную длину страницы заданного файла вывода равной числу строчек, задаваемому значением параметра ТО.
Нулевое значение параметра ТО задает неограниченную длину страницы. Если данное значение длины страницы не подходит для связанного с данным внешним файлом, то возбуждается исключение 08Е ЕййОЯ. <ипсеоп 0МЕ ЬЕМОТН(Р<аЕ: )и ЯаЕ ТУРЕ) мани СООМТ; <ипавоп 1.1МЕ 1.ЕМОТН капп СООМТ; Возвращает максимальную длину строчки, установленную для заданного файла вывода, или нуль, если длина строчки не ограничена. аикяоп РАВЕ ЬЕМОТН(НЕЕ: Ь ЯЬЕ ТУРЕ) галии СООМТ; <писаки РАОЕ 1.ЕМОТН геисгп СООМТ; Возвращает максимальную длину страницы, установленную для данного файла, или нуль, если длина страницы не ограничена. Ссылки: вид 00Т Е<ЕЕ 14.4.1, внешний файл 14.1, длина страницы 14.3, длина строчки 14.3, исключение МОСЕ ЕЙЯОЙ 14.4, исключение ЗТАТ08 ЕЙЙОЙ 14.4, исключение 08Е ЕЙЙОЙ 14.4, максимальная длина страницы 14.3, максимальная длина строчки 14.3, неограниченная длина страницы 14.3, открытый файл 14.1, признак конца строчки 14.3, страница 14.3, строчка 14.3, текущий файл вывода по умолчанию 14.3, тип СОЦМТ 14.3, тип Г) Е ТУРЕ 14.1, файл 14.1.
14.3.4. ОПЕРАЦИИ НАД СТОЛБЦАМИ, СТРОЧКАМИ И СТРАНИЦАМИ Описанные в этом разделе подпрограммы предназначены для явного управления структурой строчек и страниц файла; они оперируют либо над файлом, заданным первым параметром, либо при отсутствии такого параметра. файла над текущим файлом (ввода или вывода) по умолчанию. Если используемый в этих подпрограммах файл не открыт, то возбуждается исключение ЗТАТ08 ЕййОЙ. 470 Главе 14 ргоаедке ВК)Р С!МЕ(Е!ЬЕ: 1и Р!аЕ ТУРЕ; ВРАС)МО; 1п Р081Т)ЧЕ СООМТ:= !); р епмге ВК~ ОМЕ(ВРАС)М6: Ь РОВ)т)ЧЕ СООМТ:= П; Оперирует над файлом вида СОТ Е(ЕЕ. Если ЗРАС)М6 равно единице, то выводит признак конца строчки, а текущий номер столбца устанавливается равным единице. Затем увеличивает текущий номер строчки на единицу, кроме случая, когда текущий номер строчки уже был равен нли превышал максимальную длину страницы; а этом случае сначала выводит признак конца страницы, затем увеличивает те.