FREAD( )

 Lee caracteres de un fichero binario en una variable de memoria intermedia

Sintaxis

     FREAD(<nManejador>, @<cVarMemInter>, <nBytes>) –> nBytes

Argumentos

<nManejador> es el manejador de fichero que se obtiene de FOPEN(), FCREATE() o predefinido por el DOS.

<cVarMemInter> es el nombre de una variable de carácter inicializada y existente que se utiliza para almacenar datos leídos de un fichero especificado. La longitud de esta variable debe ser mayor que o igual a <nBytes>. <cVarMemInter> debe pasarse por referencia y, por lo tanto, debe ir precedida por el operador pasar por referencia (@).

<nBytes> es el número de bytes que deben leerse en la memoria intermedia.

Devuelve

FREAD() devuelve el número de bytes leídos satisfactoriamente como un valor numérico entero. Un valor de retorno menor que <nBytes> o cero indica el final del fichero o cualquier otro error de lectura.

Descripción

FREAD() es una función de fichero de bajo nivel que lee caracteres de un fichero binario en una variable de caracteres existente. Lee el fichero comenzando en la posición del puntero de fichero del DOS, avanzando dicho puntero el número de bytes leídos. Se leen todos los caracteres incluyendo los de control, nulos y los de código ASCII superior a 127.

FREAD() es similar en ciertos aspectos a FREADSTR() y FSEEK(). FREADSTR() lee un número especificado de bytes de un fichero hasta el carácter nulo siguiente (CHR(0)). FSEEK() desplaza el puntero del fichero sin leer.

Si surge un error durante la lectura del fichero, FERROR() devuelve el número de error del DOS. Consulte FERROR() para obtener una lista de números de error.

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

Ejemplos

¦  Este ejemplo utiliza FREAD() después de abrir un fichero, de forma satisfactoria, para leer 128 bytes en un área de memoria intermedia:

        #define BLOQUE_F      128

        //

        cMemInter := SPACE(BLOQUE_F)

        nManejador := FOPEN(“Temp.txt”)

        //

        IF FERROR() != 0

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

        ELSE

           IF FREAD(nManejador, @cMemInter, BLOQUE_F) <> BLOQUE_F

              ? “Error de lectura en Temp.txt”

           ENDIF

           FCLOSE(nManejador)

        ENDIF

 Ficheros:  La biblioteca asociada es DPXBASE.CH.