Лекция: Чтение файла.

Под чтением файла понимается ввод данных из внешнего файла, находящегося на диске, в оперативную память машины. Данные внеш­него файла становятся доступными программе.

В программе необходимо выполнить следующие действия для чте­ния файла:

открыть файл для чтения (оператор 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.

 

еще рефераты
Еще работы по информатике