Раздел 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)'', которая нужна для обработки всего
файла в одном цикле.
Упражнение:
Если необходимо пропустить остаток вводимой строки, какую
подпрограмму необходимо использовать?
- New_Line
- Skip_Line
- End_Of_Line
Вы можете также:
David A. Wheeler (dwheeler@ida.org)
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s9s2.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org