FWRITE( )
Escribe en un fichero binario abierto
Sintaxis
FWRITE(, , []) –> nBytesEscritos
Argumentos
es el manejador de ficheros obtenido de FOPEN(), FCREATE() o predefinido por el DOS.
es la cadena de caracteres que debe escribirse en el fichero especificado.
indica el número de bytes que debe escribirse, comenzando en la posición del puntero de fichero actual. Si se omite, se escribe todo el contenido de .
Devuelve
FWRITE() devuelve el número de bytes escritos como un valor numérico entero. Si el valor devuelto es igual a , la operación ha resultado satisfactoria. Si el valor de retorno es menor que o es cero, es debido a que el disco está lleno o se ha producido otro error.
Descripción
FWRITE() es una función de fichero de bajo nivel que escribe datos en un fichero binario abierto desde una memoria intermedia de cadena de caracteres. Puede escribir todo el contenido de la memoria intermedia o tan solo una parte. La escritura comienza en la posición actual del fichero y la función devuelve el número real de bytes escritos.
Si FWRITE() produce una condición de error, puede utilizar FERROR() para determinar el error específico.
¡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 profundo conocimiento del sistema operativo.
Ejemplos
¦ En este ejemplo se copia el contenido de un fichero en otro:
#include “Fileio.ch”
#define BLOQUE_F 512
//
cMemInter := SPACE(BLOQUE_F)
nFichEnt := FOPEN(“Temp.txt”, FO_READ)
nFichSal := FCREATE(“NuevFich.txt”, FC_NORMAL)
lHecho := .F.
//
DO WHILE !lHecho
nBytesLec := FREAD(nFichEnt, @cMemInter, BLOQUE_F)
IF FWRITE(nFichSal, cMemInter, nBytesLec) < ;
nBytesLec
? “Fallo de escritura: “, FERROR()
lHecho := .T.
ELSE
lHecho := (nBytesLec == 0)
ENDIF
ENDDO
//
FCLOSE(nFichEnt)
FCLOSE(nFichSal)
Ficheros: La biblioteca asociada es DPXBASE.CH.