恢复丢失了的FPT文件 由于误操作,将自由表的备注文件删除,致使自由表无法打开。遇到这种情况我们可采用下述方法解决: 1.创建一个新的自由表,且该自由表只含一个字段,其类型为备注型。关闭该自由表,将其扩展名为FPT的备注文件复制给误删除的自由表的备注文件,或将该备注文件改名为误删除的自由表的备注文件即可。 运行下面的程序同样也可以恢复丢失了的FPT 文件: accept ′请输入丢失了.FPT文件的自由表名称(不带扩展名):′ to namef namef=trim(namef)+′.bbb′ crea dbf &namef (aa m) use dele file &namef 2.用VFP低级文件函数创建一个空的FPT文件,原自由表即可打开。程序清单如下: accept ′请输入丢失了.FPT文件的自由表名称(不带扩展名):′ to namef namef=trim(namef)+′.FPT′ hand=fcreate(namef) abc=repl(chr(0),3)+chr(8)+repl(chr(0),3)+′@′+repl(chr(0),504) =fwrite(hand,abc) =fclose(hand) return 上述方法只是为丢失了FPT文件的自由表建立了一个新的FPT文件,原FPT文件中的内容已经丢失,无法恢复。在实际操作中若遇到这种情况,最好是恢复原来的FPT文件,若原FPT文件无法恢复时再采用上述方法。 低级文件函数加密数据库 VFP有一个十分薄弱的环节就是数据库的保密性差。由于.DBF文件都是敞开式的,甚至用DOS中最简单的TYPE命令都可以浏览,因此,笔者从以下两方面对数据进行加密: 1.在向自由表中增加数据时,就进行加密,即更新自由表时就对数据进行加密,在读取数据时再解密。 2.用VFP提供的低级文件函数进行加密,加密后的文件无法打开、浏览,使用时,再执行该加密程序即可将加密的自由表还原。 **加密数据库程序(同时也是解密程序)** set talk off close all clea @10,10 say ″请输入要加密的自由表名(含扩展名):″ get file1 defa ′ ′ read handle=fopen(″&file1″,2) if handle<.0 @14,10 say ″不能打开文件!″ =inkey(0) retu endif j=0 do while .not.feof(handle) bb=fread(handle,1) cc=chr(mod(asc(bb)+128,256)) =fseek(handle,j) =fwrite(handle,cc) ?asc(bb),asc(cc) j=j+1 enddo =fclose(handle) close all retu