FSEEK( )

 Sitúa el puntero de fichero binario en una nueva posición

Sintaxis

     FSEEK(<nManejador>, <nDesplazamiento>, [<nOrigen>]) –> nPosición

Argumentos

<nManejador> es el manejador de ficheros obtenido de FOPEN(), FCREATE() o predefinido por el DOS.

<nDesplazamiento> es el número de bytes que se va a desplazar el puntero del fichero desde la posición definida por <nOrigen>. Puede ser un número positivo o negativo. Un número positivo desplaza el puntero hacia adelante y uno negativo lo desplaza hacia atrás en el fichero.

<nOrigen> define la situación inicial del puntero del fichero antes de que se ejecute FSEEK(). El valor por defecto es cero, representando el inicio del fichero. Si <nOrigen> es el final del fichero, <nDesplazamiento> debe ser cero o negativo.

Métodos para Desplazar el Puntero del Fichero

     ————————————————————————

     Origen   Fileio.ch      Descripción

     ————————————————————————

     0        FS_SET         Busca desde el principio del fichero

     1        FS_RELATIVE    Busca desde la posición actual del puntero

     2        FS_END         Busca desde el final del fichero

     ————————————————————————

Devuelve

FSEEK() devuelve la nueva posición del puntero del fichero relativa al inicio del fichero (posición 0) como un valor numérico entero. Este valor es independiente de la posición original del puntero del fichero.

Descripción

FSEEK() es una función de fichero de bajo nivel que desplaza el puntero del fichero hacia adelante o hacia atrás en un fichero binario abierto sin leer realmente el contenido del fichero especificado. La posición inicial y desplazamiento se especifican como argumentos de función y se devuelve la nueva posición en el fichero. Independientemente de los argumentos de función especificados, el puntero del fichero no puede desplazarse de forma que exceda los límites del inicio o final del fichero.

¡Advertencia! Esta función permite el acceso de bajo nivel a ficheros y dispositivos del DOS. Debe utilizarse con gran precaución y requiere un conocimiento profundo del sistema operativo.

Ejemplos

     ¦  En este ejemplo se utiliza FSEEK() para determinar la longitud de un fichero buscando desde el final del mismo. Seguidamente, el puntero se restablece al inicio del fichero:

     #include “Fileio.ch”

 

        //

        // Abrir el fichero en modo de sólo lectura

        IF (nManejador := FOPEN(“Temp.txt”)) >= 0

           //

           // Obtener la longitud del fichero

           nLongitud := FSEEK(nManejador, 0, FS_END)

           //

           // Restablecer la posición al comienzo del

           // fichero

           FSEEK(nManejador, 0)

           FCLOSE(nManejador)

        ELSE

           ? “Error de apertura de fichero:”, FERROR()

        ENDIF

 

     ¦  Esta pseudofunción sitúa el puntero del fichero en el último

        byte de un fichero binario:

 

        #define FinalFichero(nManejador);

              (FSEEK(nManejador, 0, FS_END))

 

     ¦  Esta pseudofunción sitúa el puntero del fichero en el primer

        byte de un fichero binario:

 

        #define InicioFichero(nManejador);

              (FSEEK(nManejador, 0))

 

     ¦  Esta pseudofunción informa de la posición actual del puntero

        del fichero en un fichero binario especificado:

 

        #define PosFichero(nManejador);

              (FSEEK(nManejador, 0, FS_RELATIVE))

Ficheros:  La biblioteca asociada es DPXBASE.CH, el fichero de cabecera asociado es Fileio.ch.