EOF()
 Determina cuándo se detecta el final del fichero
------------------------------------------------------------------------------
 Sintaxis

     EOF() --> lLímite

Devuelve

     EOF() devuelve verdadero (.T.) cuando se efectúa un intento de
     desplazar el puntero del registro sobrepasando el último registro
     lógico de un fichero de base de datos; de lo contrario, devuelve falso
     (.F.). Si no hay fichero de base de datos abierto en el área de
     trabajo actual, EOF() devuelve falso (.F.). Si el fichero de base de
     datos actual no contiene registros, EOF() devuelve verdadero (.T.).

 Descripción

     EOF() es una función de base de datos utilizada para comprobar una
     condición límite de fin de fichero cuando el puntero del registro
     avanza por un fichero de base de datos. Cualquier mandato que pueda
     desplazar el puntero del registro puede establecer EOF().

     La aplicación más habitual es como una parte del argumento <lCondición>
     de una construcción DO WHILE que procesa secuencialmente registros en
     un fichero de base de datos. Aquí <lCondición> incluiría una
     comprobación de .NOT. EOF(), forzando al bucle DO WHILE a terminar
     cuando EOF() devuelve verdadero (.T.).

     EOF() y FOUND() se utilizan, frecuentemente, de manera intercambiable
     para comprobar si un mandato SEEK, FIND o LOCATE ha resultado fallido.
     Sin embargo, con estos mandatos es preferible usar FOUND().

     Cuando EOF() devuelve verdadero (.T.), el puntero del registro se sitúa
     en LASTREC() + 1 con independencia de si existe un filtro activo o si
     se ha establecido SET DELETED ON. Otros intentos de avanzar el puntero
     del registro devuelven el mismo resultado sin error. Una vez que EOF()
     está establecido en verdadero (.T.), retiene su valor hasta que se
     produce otro intento de desplazar el puntero del registro.

     Por defecto, EOF() opera en el área de trabajo seleccionada
     actualmente. Se puede hacer que actúe en un área de trabajo no
     seleccionada especificándola dentro de una expresión con alias
     (consulte el ejemplo siguiente).

 Ejemplos

      En este ejemplo se muestra el uso de EOF() desplazando
        deliberadamente el puntero del registro más allá del último registro:

        USE Ventas
        GO BOTTOM
        ? EOF()                                 // Resultado: .F.
        SKIP
        ? EOF()                                 // Resultado: .T.

      En este ejemplo se utilizan expresiones con alias para
        consultar el valor de EOF() en áreas de trabajo no seleccionadas:

        USE Ventas NEW
        USE Cliente NEW
        ? Ventas->(EOF())
        ? Cliente->(EOF())

      En este ejemplo se ilustra cómo EOF() puede utilizarse como
        parte de una condición para operaciones de ficheros de bases de
        datos secuenciales:

        USE Ventas INDEX NumClie NEW
        DO WHILE !EOF()
           nClieAnt := Ventas->NumClie
           nCantTotal := 0
           DO WHILE nClieAnt = Ventas->NumClie .AND. (!EOF())
              ? Ventas->NumClie, Ventas->Descripcion,;
                  Ventas->CantVentas
              nCantTotal += Ventas->CantVentas
              SKIP
           ENDDO
           ? "Cantidad total: ", nCantTotal
        ENDDO

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: BOF() DO WHILE FOUND() GO LASTREC() LOCATE