logo
ZX-Review-1992-01-12

7. EOF (номер потока).

FN E(номер потока).

Название функции EOF происходит из сокращения End of File (конец файла). При работе с микродрайвом эта функция говорит о том прочитан или нет последний байт из загружаемого файла.

Поток, номер которого указан в функции, должен быть предварительно открыт (OPEN#) для данного файла, содержащегося на ленте микродрайва. Если этого не сделать, то Вы получите сообщение об ошибке "Invalid Stream". Этот файл должен, конечно, физически существовать и быть открытым для чтения, иначе вы получите сообщение об оошибке "Reading a "Write" file"

Функция выдает "1", если последний байт данных считан из файла или "0", если он еще не считан. Это помогает точно установить момент конца считывания данных и избежать попыток прочтения большего количества данных, чем в этом файле есть, что вызвало бы появление ошибки.

Предположим, что на микродрайве у вас есть файл "data". Наиболее элегантный путь использования функции EOF выглядел бы так:

10 OPEN #5,"m",1,"data"

20 DO UNTIL EOF(5)=1

30 INPUT #5;a$: PRINT a$

40 LOOP

50 STOP

Впрочем, строку 20 можно записать еще короче:

20 DO UNTIL EOF(5)

Если Вы еще не привыкли к использованию циклов DO...LOOP, то можете попробовать действовать так:

10 OPEN #5,"m",1,"data"

20 INPUT #5;a$: PRINT a$

30 IF EOF(5)=0 THEN GO ТО 20

40 STOP