Hola
Me pasa que tengo que rellenar un fichero con texto. Creo el fichero correctamente, pero no se escribe nada. Paso un trozo de lo que hago con un ejemplo simplificado:
static function CrearFichero()
Local lLinea := ""
// Creo el nombre del fichero. Tiene 21 caracteres + la extensión .txt
oVar:cFichero := "COLE"+;
"61420"+;
Alltrim(Str(Year(Date())))+;
Right("00"+Alltrim(Str(month(Date()))),2)+;
Right("00"+Alltrim(Str(Day(Date()))),2)+;
SubStr(Time(),1,2)+;
SubStr(Time(),4,2)+;
"IPLIQF"+;
".txt"
/ Si existe un fichero con el mismo nombre, elimino el previo.
if file(oVar:cFichero)
DELETE FILE (oVar:cFichero)
MsgInfo("Fichero borrado")
endif
// Creo el fichero. Lo hace correctamente
if oVar:cHFichero := FCreate(oVar:cFichero, 0) == -1
MsgAlert("No se ha podido crear el fichero de exportación: "+oVar:cFichero)
return .T.
endif
// Texto a introducir en el fichero.
llinea := "HOLA"
// Escribo en el fichero.
FWrite(oVar:cHFichero, llinea)
// Cierro el fichero
FClose(oVar:cHFichero)
***** Al final de la función tengo un mensaje para indicar si ha terminado. Aparece el mensaje pero ni ha escrito nada ni ha hecho nada con el fichero (también tengo puesto que lo copie a otro directorio)
Mientras está la aplicación funcionando, si intento abrir el fichero, Windows me avisa de que el fichero está siendo usado.
La verdad es que es un poco extraño pues en la versión 16 bits del programa (FW+Clipper) lo hace todo perfectamente.
Saludos