Функция EOF()

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

Синтаксис:

EOF([nWorkArea | cTableAlias])

Параметры:
nWorkArea. Задает номер рабочей области таблицы.
cTableAlias
Задает псевдоним таблицы.
Функция EOF( ) возвращает значение "ложь" (.F.), если в указанной рабочей области нет открытых таблиц.
Если вы не задали рабочую область или псевдоним, условие конца таблицы будет проверяться в таблице, которая открыта в рабочей области, выбранной в данный момент.

Результат:
Логический

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

Пример:

* В следующем примере открывается таблица customer и на экране
* появляются командные кнопки, позволяющие передвигать указатель
* записи по таблице взад-вперед. В зависимости от направления движения
* Visual FoxPro проверяет, достиг указатель записи конца файла (EOF) или
* начала файла (BOF). Если какое-либо из этих условий имеет значение
* истина (.T.), Visual FoxPro выдает сообщение и устанавливает указатель
* записи на последнюю или первую запись.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
SET TALK OFF
CLEAR
ACTIVATE SCREEN
@ 2,1 SAY 'Company: '+ company
DEFINE WINDOW wSkip FROM 9,10 TO 14,65 DOUBLE COLOR SCHEME 5
ACTIVATE WINDOW wSkip
@ 1,5 GET gnChoice FUNCTION '*HN \<Forward;\<Backward;\<Quit' ;
	DEFAULT 0 SIZE 2,14 VALID CHOICE( )
READ CYCLE
RELEASE WINDOW wSkip

PROCEDURE choice
DO CASE
	CASE gnChoice = 1
		SKIP
		IF EOF('CUSTOMER')
			WAIT WINDOW 'End of file encountered' NOWAIT
			SKIP -1
		ENDIF
	CASE gnChoice = 2
		SKIP -1
		IF BOF('CUSTOMER')
			WAIT WINDOW 'Beginning of file encountered' NOWAIT
			GO TOP
		ENDIF
	CASE gnChoice = 3
		CLEAR READ
ENDCASE
ACTIVATE SCREEN
@ 2,1 CLEAR TO 2,50
@ 2,1 SAY 'Company: '+ company
RETURN .T.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.01.2003