FSEEK( )
Sitúa el puntero de fichero binario en una nueva posición
Sintaxis
FSEEK(, , []) –> nPosición
Argumentos
es el manejador de ficheros obtenido de FOPEN(), FCREATE() o predefinido por el DOS.
es el número de bytes que se va a desplazar el puntero del fichero desde la posición definida por . 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.
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 es el final del fichero, 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.