ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »