by Elias Torres » Tue Dec 12, 2006 9:21 am
Hola Antonio. Si, se trata de una funcion que identifica el final del fichero binario. Lo que pretendo es poder quitar la cabecera de una tabla que esté enganchada a una *.dbc
Lo que pretendo es algo parecido a esto:
*** Abre fichero ***
local a,b,c,n
a= fopen('articulo.dbf',1)
*** Si no logra abrirlo ***
if a < 0
return
endif
*** Inicializa variables
c= 'datos.dbc' && se trata del enlace q tiene la tabla al *.dbc
n= 0
do while !feof(a)
b= lower(fread(a,1))
n= n + 1
c= right(c+b,9)
if c= 'datos.dbc'
fseek(a,0,0) && se posiciona al principio del fichero
fseek(a,n-9) && se posiciona al principio cadena encontrada
fwrite(a,replicate(chr(0),9)) && sustituye
endif
enddo
fclose(a)
Pero claro no me funciona. El problema lo tengo cuando he localizado la ristra 'datos.dbc'. Es decir, que en el if el valor de c es el que tiene que ser, es decir, que c='datos.dbc', pero luego a la hora de sustituir con el fwrite() parece que no remplaza lo que deberia. Supongo que el problema es debido al fseek(). Esto lo he probado en Fox puesto que en fwppc no me reconoce la función FEOF()....
Gracias y saludos.
Elías Torres.