ВУЗ:
Составители:
Рубрика:
23
While not EOF(f) do Read(f, ...);
остановится только после полного истощения файла, даже если последние
1024 строк его были пустыми. Если переписать цикл в виде
While not SeekEOF(f) do Read(f, …)
он станет работать более эффективно.
Как и SeekEOLn, функция SeekEOF применима только к открытым для
чтения текстовым файлам.
Операторы ввода - вывода в текстовые файлы
Ввод и вывод числовой и текстовой информации в Турбо Паскале
осуществляется операторами:
Ввод
Read(f, X) или Read(f, x1, x2,...xn) и Readln(f, X) или Readln(f, x1, x2,...xn);
Вывод
Write(f, X) или Write(f, x1, x2,...xn) и Writeln(f, x) или Writeln(f, x1, x2,...xn).
Если в операторе ввода - вывода первым параметром стоит логическое
имя файла, то это означает, что поток данных будет приниматься (Read) или
направляться (Write) на конкретное физическое устройство компьютера, свя-
занное в данный момент с логическим именем этого файла.
Если операторы содержат один лишь список ввода - вывода, то счита-
ется, что ввод сопряжен со стандартным логическим файлом Input (под ним
подразумевается клавиатура с “эхом” ввода на экране), а вывод - с логиче-
ским файлом Output (что соответствует выводу на экран дисплея).
Имена Input и Output являются предопределенными в системной биб-
лиотеке (модуле System). Напомним, что в стандартном Паскале любая
программа, использующая ввод - вывод, должна начинаться со слов
PROGRAM имя (Input, Output);
что, по сути, открывает каналы ввода - вывода. В Турбо Паскале можно сме-
ло опускать описание PROGRAM и не надо описывать имена Input и Output.
Таким образом, оператор Read (x1, x2) полностью эквивалентен опера-
тору Read (Input, х1, х2), а оператор Write (xЗ, x4) - оператору Write (Output,
xЗ, x4).
24
1. Операторы ввода Read/ Readln
Рассмотрим сначала операторы ввода информации – Read и Readln. Их
аргументами должен быть список переменных, значения которых будут счи-
таны (введены). Тип переменных при вводе из текстового файла (в том числе
и с клавиатуры) может быть только целым, вещественным, символьным
(Char), строковым или совместимым с ними.
Процедура ReadLn(Read Line) считывает значения в текущей строке и
переводит позицию на начало следующей строки, даже если в текущей строке
остались непрочитанные данные. Так, при чтении в текстовом файле строки:
12.3 13.4 14.5 15.6
оператором ReadLn(f, r1, r2) вещественные переменные r1 и r2 получат зна-
чения 12.3 и 13.4, после чего произойдет переход на другую строку, и
следующие два числа (14.5 и 15.6) будут проигнорированы. Вызов
ReadLn;
без указания файла и списка ввода сделает паузу до нажатия клавиши ввода.
Символ - признак конца текста #26 также является разделителем и ог-
раничивает строку, но за ним чтение уже невозможно. Файл на нем
кончается! Конец файла может быть считан в символьную переменную, в
строчную он не войдет (как не входит символ 13), а чтение #26 вместо ожи-
даемых числовых значений эквивалентно прочтению 0.
2. Операторы вывода Write/WriteLn
Операторы Write и WriteLn выводят значение x или список значений
x1, х2, . . .,хn в текстовый файл f. Если файл не указан, то считается, что вы-
вод направлен в файл Output (на дисплей). Значения, как и при вводе, могут
иметь лишь целые, вещественные, символьные и строковые типы, а также
производные от них. Всевозможные структуры (записи, массивы) должны
выводиться по их полям или элементам. Множества, указатели (Pointer), фай-
ловые переменные также не могут быть выведены без предварительного их
преобразования в выводимые составляющие. Исключение составляет лишь
тип Boolean:
Const
tr: Boolean = True;
fa: Boolean = False;
…
Write(tr,′…′,fa);
While not EOF(f) do Read(f, ...); 1. Операторы ввода Read/ Readln
остановится только после полного истощения файла, даже если последние Рассмотрим сначала операторы ввода информации Read и Readln. Их
1024 строк его были пустыми. Если переписать цикл в виде аргументами должен быть список переменных, значения которых будут счи-
While not SeekEOF(f) do Read(f, ) таны (введены). Тип переменных при вводе из текстового файла (в том числе
он станет работать более эффективно. и с клавиатуры) может быть только целым, вещественным, символьным
Как и SeekEOLn, функция SeekEOF применима только к открытым для (Char), строковым или совместимым с ними.
чтения текстовым файлам. Процедура ReadLn(Read Line) считывает значения в текущей строке и
переводит позицию на начало следующей строки, даже если в текущей строке
Операторы ввода - вывода в текстовые файлы остались непрочитанные данные. Так, при чтении в текстовом файле строки:
12.3 13.4 14.5 15.6
Ввод и вывод числовой и текстовой информации в Турбо Паскале оператором ReadLn(f, r1, r2) вещественные переменные r1 и r2 получат зна-
осуществляется операторами: чения 12.3 и 13.4, после чего произойдет переход на другую строку, и
Ввод следующие два числа (14.5 и 15.6) будут проигнорированы. Вызов
Read(f, X) или Read(f, x1, x2,...xn) и Readln(f, X) или Readln(f, x1, x2,...xn); ReadLn;
Вывод без указания файла и списка ввода сделает паузу до нажатия клавиши ввода.
Write(f, X) или Write(f, x1, x2,...xn) и Writeln(f, x) или Writeln(f, x1, x2,...xn). Символ - признак конца текста #26 также является разделителем и ог-
раничивает строку, но за ним чтение уже невозможно. Файл на нем
Если в операторе ввода - вывода первым параметром стоит логическое кончается! Конец файла может быть считан в символьную переменную, в
имя файла, то это означает, что поток данных будет приниматься (Read) или
строчную он не войдет (как не входит символ 13), а чтение #26 вместо ожи-
направляться (Write) на конкретное физическое устройство компьютера, свя-
даемых числовых значений эквивалентно прочтению 0.
занное в данный момент с логическим именем этого файла.
Если операторы содержат один лишь список ввода - вывода, то счита- 2. Операторы вывода Write/WriteLn
ется, что ввод сопряжен со стандартным логическим файлом Input (под ним Операторы Write и WriteLn выводят значение x или список значений
подразумевается клавиатура с эхом ввода на экране), а вывод - с логиче- x1, х2, . . .,хn в текстовый файл f. Если файл не указан, то считается, что вы-
ским файлом Output (что соответствует выводу на экран дисплея). вод направлен в файл Output (на дисплей). Значения, как и при вводе, могут
Имена Input и Output являются предопределенными в системной биб- иметь лишь целые, вещественные, символьные и строковые типы, а также
лиотеке (модуле System). Напомним, что в стандартном Паскале любая производные от них. Всевозможные структуры (записи, массивы) должны
программа, использующая ввод - вывод, должна начинаться со слов выводиться по их полям или элементам. Множества, указатели (Pointer), фай-
PROGRAM имя (Input, Output); ловые переменные также не могут быть выведены без предварительного их
преобразования в выводимые составляющие. Исключение составляет лишь
что, по сути, открывает каналы ввода - вывода. В Турбо Паскале можно сме-
тип Boolean:
ло опускать описание PROGRAM и не надо описывать имена Input и Output.
Const
Таким образом, оператор Read (x1, x2) полностью эквивалентен опера-
tr: Boolean = True;
тору Read (Input, х1, х2), а оператор Write (xЗ, x4) - оператору Write (Output,
fa: Boolean = False;
xЗ, x4).
Write(tr,′ ′,fa);
23 24
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »
