Определяет, находится ли указатель записи после последней записи в текущей или в указанной таблице.

Прим.переводчика. Под текущей таблицей понимается таблица, открытая в текущей рабочей области.

EOF([nWorkArea | cTableAlias])

Параметры

nWorkArea

Указывает номер рабочей области, в которой находится таблица.
cTableAlias

Указывает алиас таблицы. Функция EOF( ) возвратит Ложно (.F.), если таблица в указанной вами рабочей области не открыта. Если вы не укажете алиас или номер рабочей области, то проверка таблицы на достижение указателем её конца будет производиться в текущей таблице.

Возвращаемое значение

Логическое

Примечания

EOF( ) возвращает Истинно (.T.), если указатель записи достигает конца файла с таблицей (EOF). Конец таблицы достигается в тот момент, когда указатель записи продвигается за последнюю запись в таблице. Например, когда выполнение команды FIND, LOCATE или SEEK оказывается неуспешным, Visual FoxPro перемещает указатель записи к последней из записей в таблице и EOF( ) возвращает Истинно (.T.). EOF( ) возвращает Ложно (.F.), если указатель записи не находится в конце таблицы.

Пример

В следующем примере открывается таблица Клиенты (customer) и наименования компаний выводятся по одному до тех пор, пока не будет достигнут конец таблицы или вы не выберете кнопку Cancel в диалоге MessageBox.

  Скопировать код
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME() + "samples\data\testdata")
USE customer
GO TOP
local recCtr, btnValue
recCtr = 0
btnValue = 1
DO WHILE btnValue = 1 AND NOT EOF()
? "Company : " + company
recCtr = recCtr + 1
if (recCtr % 20) = 0 then
btnValue =MESSAGEBOX ("Click OK to continue, ;
Cancel to quit.",33)
clear
endif
Skip 1 && Move down one record
ENDDO
=MESSAGEBOX("Listing complete.",48)

См.также