DBF文件字段为双精度型,怎么在文件头中多出很多个字节的空白?

DBF文件字段为双精度型,怎么在文件头中多出很多个字节的空白?,第1张

您好,是这样的:

n+1 头记录终止符(0x0D),n+2 到 n+264 此范围内的 263 个字节包含后链信息(相关数据库 (.dbc) 的相对路径)。如果第一个字节为 0x00,则该文件不与数据库关联。因此数据库文件本身总是包含 0x00。 数据记录从 除标消陵记字节开始。如果此字节为 ASCII 空格 (0x20),该记录没有删除标记, 如果第一字节为星号 (0x2A),该记录有删谈毁除标记含桥备。在标记之后是字段记录中所命名各字段中的数据。

网上有很多这样的资料,一般由加密解密构成!给你一份资料,你学习学习吧!!!一、加密、解密思路

我们知道数据库文件(.dbf)的数据结构分为三部分:文件头部分、字段描述部分和记录部分。文件头部分的第一个字节是chr(03),这样,就可以

通过修改文件头的第一个字节,使启用正常的打开方式不能浏览数据库内容,达到加密的目的;解密时,将加密数据库文件的文件头第一个字节修改为

正常的数据库文件的第一个字节,即可对它进行正常 *** 作。

二、加密函数

function jiami

parameters dbf_f_name,curs_set

dbf_f_name=upper(alltr(dbf_f_name))

private all

if .not. file(dbf_f_name)

=messagebox(""要加密的文件不存在!!"",0+48,""错误提示"")

else

if ! "".DBF"" $ dbf_f_name

dbf_f_name=dbf_f_name+"".DBF""

endif

hle=FOPEN(dbf_f_name,2)

if hle>0 &&打开文件成功

fbyte=FREAD(hle,1)

=FSEEK(hle,0)

=FWRITE(hle,iif(fbyte==chr(3),chr(0),chr(26)))

&&假如第一个字节是chr(3)则用chr(0),否则用chr(26)写入

=FCLOSE(hle)

else

=messagebox(""试嫌亮图文件打开错误!!"",0+48,""加密错误提示"")

endif hle>0

endif

return

三、解枯灶密函数

function jiemi

parameters dbf_f_name,curs_set

dbf_f_name=upper(alltr(dbf_f_name))

private all

if .not. file(dbf_f_name)

=messagebox(""要解密的文件不存在!!"",0+48,""错误提示"")

else

if ! "".DBF"" $ dbf_f_name

dbf_f_name=dbf_f_name+"".DBF""

endif

hle=FOPEN(dbf_f_name,2)

if hle>0

fbyte=FREAD(hle,1)

=FSEEK(hle,0)

if fbyte=chr(0).or.chr(26)

=FWRITE(hle,iif(fbyte=chr(0),chr(3),chr(245)))

endif

=FCLOSE(hle)

else

=messagebox(""试图文件打开错误!!"",0+48,""解密错误提示"")

endif hhandle>0

endif

return

四、调用加(解)密函数

启动VFP,将加密、解密函数在程序调用之前定义,然后建立表单,在表单中建立两个命令按钮,命名为“加密”、“解密”;

在命令按钮“加密”的click事件中添加代码:“=jiami(""要加密的数据库文件名"",off)”

如果要加密多个数据库文件,则调用几次加密函数即可);

同理在命令按钮“解密”的click事件中添加代码:芹败宽“=jiemi(""要解密的数据库文件名"",off)”,如果要解密多个加密数据库文件,则多调用几

次解密函数即可。

在表单中,点击“加密”按钮,则执行加密 *** 作,点击“解密”按钮,执行解密 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12136773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存