Árvore de páginas

Sintaxis

 

EOF()

 

 

Propósito

 

Determina si se llegó el final del archivo de datos.

 

 

Argumentos

 

Ninguno.

 

 

Utilización

 

La función EOF(), que significa end of file, se utiliza para verificar si se llegó al final de un archivo de datos por medio del movimiento progresivo (de inicio a fin) de sus registros. De esta manera, se evita ejecutar la función dbSkip() cuando ya se está al final del archivo. Cualquier función que mueva el apuntador de registros puede modificar o definir el resultado de la función EOF().

 

Cuando el apuntador de registros está ubicado después del último registro del archivo de datos, la función EOF() vuelve verdadero (.T.). Cualquier intento de desplazar el apuntador, que supere el último registro, suministra el mismo resultado sin causar una condición de error.

 

Si el archivo de datos no contiene registros, la función EOF() también volverá verdadero (.T.). Pero, si no hay ningún archivo de datos abierto en el área de trabajo seleccionada, la función retorna como falso (.F.).

 

La función EOF() mantiene su valor hasta que se realice un nuevo movimiento del apuntador de registros.

 

 

Sugerencias

 

Si el archivo de datos tiene un índice, la función EOF() detectará el final del archivo de acuerdo con el orden establecido por este índice.

 

La función BOF() es el inverso de la función EOF(), puesto que detecta el inicio de un archivo de datos.

 

El más típico uso de la función EOF() es como como si fuera parte de la condición de un comando WHILE. En este caso, la condición debe ser verdadera mientras no se llegue el final del archivo.

 

Para verificar si se ha encontrado un registro, en el caso que se utilice la búsqueda exacta en las funciones  dbSeek() o MsSeek(), se debe utilizar la función FOUND() y no la función EOF(). Tan sólo en los casos de búsqueda aproximada se utilizará la función EOF() en conjunto con la función FOUND() para verificar si se encontró un registro que atienda la clave de búsqueda.

 

Por lo general, la función EOF() opera sobre el área de trabajo seleccionada. Pero, se puede operar sobre otra área de trabajo por medio de la especificación de un alias. Por ejemplo: <alias>->EOF() verifica si se llegó al final del archivo abierto en el área de trabajo especificada por el alias.

 

 

Ejemplos

 

dbSelectArea(“SD2”)

 

// De acuerdo con el archivo SIX, la clave de búsqueda es D2_FILIAL + D2_CLIENTE + D2_LOJA

dbSetOrder(8)

dbSeek(“01” + “000001” + “02”)     // Filial: 01 / Código: 000001 / Loja: 02

 

WHILE !EOF() .AND. xFilial(“SA1”) == SA1->A1_FILIAL .AND. SA1->A1_COD == “000001” .AND.;

                                  SA1->A1_LOJA == “02”

          nVlrTot += SD2->D2_VALOR

 

          dbSkip()

ENDDO

  • Sem rótulos