Proteccion DBF
Publicado: Jue Oct 23, 2008 8:02 am
Hola:
Estoy interesado en proteger determindadas .DBF. En Clipper usaba algo
que
se parece a la siguiente funcion ( no recuerdo su autor ) :
FUNCTION Esconder(cFile,nAction)
local nHandle:=0
local cBuffer:=Space(32)
nHandle:=FOpen(cFile,FO_READWRITE+FO_SHARED)
default nAction:=1
IF nHandle!=-1
IF FRead(nHandle,@cBuffer,32)==32
IF nAction==0
IF SubStr(cBuffer,1,1)<>Chr(26)
cBuffer:=Chr(26)+SubStr(cBuffer,1,31)
ENDIF
ELSE
IF SubStr(cBuffer,1,1)==Chr(26)
cBuffer:=SubStr(cBuffer,2,31)+ Chr(0)
ENDIF
ENDIF
FSeek(nHandle,0)
FWrite(nHandle,cBuffer,32)
ENDIF
FClose(nHandle)
ENDIF
RETURN (FError())
donde con nAccion = 0 se impedia el acceso y con nAccion = 1 se restauraba
de nuevo.
En Xailer, la he probado pero solo consigo que me de corrupcion de fichero,
sea qual sea
la accion.
Hay alguna funcion (Fwrite, FSeek, etc) incompatible con el compilador
xHarbour ?.
Gracias .
Josep Castells
Estoy interesado en proteger determindadas .DBF. En Clipper usaba algo
que
se parece a la siguiente funcion ( no recuerdo su autor ) :
FUNCTION Esconder(cFile,nAction)
local nHandle:=0
local cBuffer:=Space(32)
nHandle:=FOpen(cFile,FO_READWRITE+FO_SHARED)
default nAction:=1
IF nHandle!=-1
IF FRead(nHandle,@cBuffer,32)==32
IF nAction==0
IF SubStr(cBuffer,1,1)<>Chr(26)
cBuffer:=Chr(26)+SubStr(cBuffer,1,31)
ENDIF
ELSE
IF SubStr(cBuffer,1,1)==Chr(26)
cBuffer:=SubStr(cBuffer,2,31)+ Chr(0)
ENDIF
ENDIF
FSeek(nHandle,0)
FWrite(nHandle,cBuffer,32)
ENDIF
FClose(nHandle)
ENDIF
RETURN (FError())
donde con nAccion = 0 se impedia el acceso y con nAccion = 1 se restauraba
de nuevo.
En Xailer, la he probado pero solo consigo que me de corrupcion de fichero,
sea qual sea
la accion.
Hay alguna funcion (Fwrite, FSeek, etc) incompatible con el compilador
xHarbour ?.
Gracias .
Josep Castells