本文主要是介绍对DBF表进行加密或解密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
*前提:被操作的表如果已经打开,一定要先关闭
*---------------------------------------
DBF_JM('temp.dbf',1) &&加密
DBF_JM('temp.dbf',0) &&解密
FUNCTION DBF_JM
PARAMETERS filename,jm
IF AT('.',filename)=0 filename=filename+'.dbf' &&处理文件名
ENDIF
IF jm=1 &&加密
handle=FOPEN(filename,2) &&打开文件
keybite=FREAD(handle,1) &&读表头第一个字节
=FSEEK(handle,0) &&指针移回第一个字节
=FWRITE(handle,CHR(ASC(keybite)+2)) &&用比原来高2的ASCII字符改写
=FCLOSE(handle) &&关闭文件 ELSE &&解密
handle=FOPEN(filename,2)
keybite=FREAD(handle,1)
=FSEEK(handle,0)
=FWRITE(handle,CHR(ASC(keybite)-2)) &&用比原来低2的ASCII字符改写
=FCLOSE(handle)
ENDIF
ENDFUNC
*---------------------------------------
FUNCTION DBF_JieMi &&解密
PARAMETERS lfile
lfn=ALLTRIM(lfile)
lh=FOPEN(lfn,12)
=FSEEK(lh,0,0)
=FSEEK(lh,8)
lk1=FREAD(lh,1)
lk2=FREAD(lh,1)
=FSEEK(lh,0,0)
=FSEEK(lh,8)
=FWRITE(lh,CHR(ASC(lk1)-2),1)
=FWRITE(lh,CHR(ASC(lk2)-2),1)
=FCLOSE(lh)
RETURN
ENDFUNC
FUNCTION DBF_JiaMi &&加密
PARAMETERS lfile
lfn=ALLTRIM(lfile)
lh=FOPEN(lfn,12)
=FSEEK(lh,0,0)
=FSEEK(lh,8)
lk1=FREAD(lh,1)
lk2=FREAD(lh,1)
=FSEEK(lh,0,0)
=FSEEK(lh,8)
=FWRITE(lh,CHR(ASC(lk1)+2),1)
=FWRITE(lh,CHR(ASC(lk2)+2),1)
=FCLOSE(lh)
RETURN
ENDFUNC
这篇关于对DBF表进行加密或解密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!