Раздел 9.2 - Конец строки и конец файла

В пакете Text_IO текстовые файлы рассматриваются как последовательность строк, каждая из которых содержит ноль или более символов. В различных операционных системах используются различные способы обозначения конца строки и конца файла, поэтому Text_IO определяет их, руководствуясь соглашениями для данной операционной системы.

Следующие подпрограммы помогают в работе с концом строки и концом файла:

Процедура New_Line
New_Line заканчивает текущую строку и начинает новую. Эта процедура принимает необязательный параметр, который указывает, сколько новых строк необходимо добавить (по умолчанию - одну). Также можно указать файл, в который будет добавлена новая строка (по умолчанию это Current_Output).
Процедура Skip_Line
Skip_Line является дополнением New_Line. Она начинает ввод со следующей за текущей строки, пропуская любой текст, котрый находится в текущей строке и не был еще считан.
Функция End_Of_Line
Возвращает True, если достигнут конец строки (иначе возвращается False).
Функция End_Of_File
Возвращает True, если достигнут конец файла (иначе возвращается False).
Функция Line
Возвращает номер текущей строки в файле, запись или чтение которого выполняется (номер первой строки равен 1). Эта функция полезна, если при обработке некоторых входных данных неожиданно обнаруживается ошибка ввода.

Если необходимо работать с каким-либо файлом, то, как и в операциях Get и Put, первым должен быть параметр, имеющий тип File_Type, иначе по умолчанию будут использованы Current_Input Current_Output. Например, если производится чтение из Startup_File (переменной типа File_Type), можно использовать для проверки конца файла "End_Of_File(Startup_File)".

Эти подпрограммы также достаточно полезны и без параметров. Заметим, что в Ada при вызове подпрограммы без параметров не нужно ставить скобки () после имени подпрограммы (это незначительное отличие от синтаксиса C и C++).

Ниже приведен еще один пример программы, которая печатает только "длинные" строки. Этот пример иллюстрирует часто применяющуюся в Аде конструкцию ``while (not End_Of_File)'', которая нужна для обработки всего файла в одном цикле.


Verbose Configure


Упражнение:

Если необходимо пропустить остаток вводимой строки, какую подпрограмму необходимо использовать?

  1. New_Line
  2. Skip_Line
  3. End_Of_Line

Вы можете также:

PREVIOUS Перейти к предыдущему разделу

NEXT     Перейти к следующему разделу

OUTLINE  Вернуться к содержанию Урока 9

David A. Wheeler (dwheeler@ida.org)

Перевод: Юрий Королев   Общая редакция перевода: Г.Ю. Сисюк

Исходная копия этого документа находится по адресу "http://www.adahome.com/Tutorials/Lovelace/s9s2.htm".

Исходная копия перевода размещена на сайте http://www.ada-ru.org