Функция EOF
Функция EOF (Номер_файла) применяется с аргументом Номер_файла и возвращает логическое значение "истина", если достигнут конец файла, и "ложь" — в противном случае.
Отдельные записи файла считываются одним из вариантов команды INPUT. Ранее было рассмотрено считывание данных с клавиатуры и запоминание полученной информации в переменных. Для того чтобы читать данные из файла, следует применять оператор INPUT в таком виде:
INPUT #Номер_фаила, Поле_данных_1 [,Поле_данных_2]... [,Поле_данных_n]
'Работа с файлами
'Программа для последовательного чтения адресов
'Объявление полей данных
DIM nachname$, vornameS, strasse$, plz$, ort$, telefon$,stichwort$
'Открыть файл в режиме INPUT
OPEN "adresse.asc FOR INPUT AS #1
CLS
'Читать файл до тех пор, пока функция EOF не примет
'значение "ложь" (0)
DO UNTIL EOF(1)
'0 до тех пор, пока не достигнут конец файла
'Читать запись
INPUT #1,nachname$,vornamee$,strasse$,plz$,ort$,telefon$, stichworrtS
'Вывести на экран
PRINT nachname$," "; vorname$; " "; strasse$
PRINT plz$; " "; ort$, " ", telefonS; " "; stichwort$
PRINT LOOP
'Закрыть файл CLOSE *1
В данном разделе работу с адресами в справочнике дополним несколькими важными функциями. Прежде всего должны быть разработаны удобные формы представления справочных данных на экране. Не следует обходить вниманием этот раздел, даже если Вас отпугнут несколько пространные примеры. Интенсивная проработка этого раздела несомненно даст Вам ценный материал для собственной практики программирования. У Вас появится возможность повторить основные операции QBASIC.
Программа управления адресами должна выполнять следующие действия:
· искать адрес
· изменять адрес
В главной программе для выбора отдельных действий необходимо создать меню. Из меню программа разветвляется на отдельные процедуры, которые выполняют независимые задачи. Преимущество такой структуры программы в том, что, во-первых, можно достаточно быстро получить доступ к любому фрагменту рабочей программы, а также меню - очень удобный интерфейс любой программы. Для начала попробуем нарисовать некую рамку, в которой и будет находится наша программа. Пример программы представлен ниже.
Пример:
CLS
FOR i = 17 TO 64
COLOR 1
LOCATE 10, i
PRINT "=" 'Прорисовка 1-й горизонтальной линии
LOCATE 23, i
PRINT "=" 'Прорисовка 2-й горизонтальной линии
NEXT i
FOR j = 11 TO 22
LOCATE j, 17
PRINT "" 'Прорисовка 1-й вертикальной линии
LOCATE j, 65
PRINT "¦" 'Прорисовка 2-й вертикальной линии
NEXT j
LOCATE 10, 17 ' Прорисовка уголков
PRINT "?"
LOCATE 10, 65
PRINT "?"
LOCATE 23, 17
PRINT "?"
LOCATE 23, 64
PRINT "?"
COLOR 2
LOCATE 21, 39
PRINT "OK"
Теперь мы имеем рамочку в центре экрана и внутри написано ОК. Далее... Во первых нам нужен обработчик клавиш для передвижения по меню, а во вторых требуется составить алгоритм прорисовки экрана после каждого нового перехода от одного пункта к другому.
Попробуйте составить программу самостоятельно.