![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Под чтением файла понимается ввод данных из внешнего файла, находящегося на диске, в оперативную память машины. Данные внешнего файла становятся доступными программе.
В программе необходимо выполнить следующие действия для чтения файла:
открыть файл для чтения (оператор RESET),
ввести данные файла в программу (оператор READ),
закрыть файл для чтения (оператор CLOSE),
Внешний файл, из которого читаются данные, часто называют входным файлом. Общая форма чтения файла имеет вид:
RESET (имя 1);
...
READ (имя, параметры);
...
CLOSE (имя 1);
Многоточием отмечено наличие каких-либо операторов программы. В некоторых версиях языка ПАСКАЛЬ, оператор RESET может иметь несколько аргументов, например:
RESET (имя 1, 'имя 2', имя 3’, имя 4).
Аргументы имеют следующее назначение:
имя 1 - имя файла в программе (файловая переменная);
имя 2 - физическое (конкретное) имя внешнего файла на диске;
имя 3 - расширение физического имени файла. Рекомендуется указывать слово PAS (от слова PASCAL), если программа составлена на языке ПАСКАЛЬ. Аргумент можно не указывать, тогда по умолчанию будет слово DAT;
имя 4 - переменная, которая автоматически получает значение, равное числу блоков, занимаемых внешним файлом на диске. Аргумент можно не указывать, но если он указан, то нужно объявить переменную как целого типа.
Оператор ввода для чтения файла обладает всеми свойствами обычного оператора ввода READ. В качестве параметров могут быть переменные; каждая переменная получает значение одного элемента, считанного из внешнего файла. Переменные должны быть описаны в программе соответственно своему типу.
Так как по определению число элементов файла не задается, то в языке ПАСКАЛЬ введен признак конца файла. Стандартная встроенная функция
EOF (имя файла)
используется для определения, достигнут ли конец файла: она принимает истинное значение, если достигнут конец файла, и ложное — в противном случае.
Функцию EOF можно использовать в логических выражениях и, в частности, в операторах цикла, например
WHILE NOT EOF(F1) DO
BEGIN
...
END
Пока не достигнут конец файла F1, повторяется циклическая часть программы, заключенная в операторные скобки BEGIN — END.
Рассмотрим на примере чтение внешнего файла и обработку его в программе.
Пример 13.1. Пусть на диске имеется файл с именем F1, в котором записана последовательность действительных чисел
0.54 1.7 8.43 6.2 4.1
Необходимо эти данные ввести в программу и вычислить их сумму. Каждый элемент данных файла будем обозначать в программе переменной S, а сумму - SUM.
VAR
F1:TEXT; (* ВХОДНОЙ ФАЙЛ*)
S:REAL; (*ЧИСЛО *)
SUM:REAL; (* СУММА *)
BEGIN
SUM:=0;
RESET(F1);
WHILE NOT EOF(F1)DO
BEGIN
READ(F1,S);
SUM:=SUM+S;
END;
WRITE(‘CУММА=’,SUM:7:2);
CLOSE(F1);
END.
В примере 13.1 Fl - имя входного файла. Оператор RESET открывает файл F1 для чтения из него данных.
Оператор ввода READ (Fl, S) применяется для считывания данных из внешнего файла в переменную S. Если оператор ввода стоит вне цикла, то переменная S получит только одно значение S = 0.54.
Оператор CLOSE (Fl) служит для закрытия файла F1.
Дата публикования: 2014-11-02; Прочитано: 176 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!