C语言直接操作DBF数据库的方法与实现.docVIP

C语言直接操作DBF数据库的方法与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言直接操作DBF数据库的方法与实现 C语言直接操作DBF数据库的方法与实现 石家庄军械_x,ll学院谷蕾桥马英忱冯勋欣 捕要本文在对DBAsEI数据库进行剖析的基础上.提出了一种用c语言直接对DBF数据进行数 据读取和记录处理的方法.并结合实佣,说明了C语言编程的步骤和技巧. 1寻l言 C语言不仅具有很强的通用程序设计功 能,而且还有很强的可移植性.对于图像图 形等较复杂的问题,C语言确实都是一种强 有力的工具.但它对于大量数据信息的处 理.不如DBASEI语言.如将C语言和D— BASEI语言相互调用,取长朴短.一个关 键的问题就是用C语言对DBF数据文件进行 识别和数据处理.因此,建立一套C语言对D— BF数据库直接读取和处理的方法是十分重 要的. 2DBAS噩数据库文件的结构 剖析 DBF数据库磁盘文件是以二进制数字 和ASCII字符相结合的形式夺储的表1和表 2列出-fDBF数据库文件结构说明部分的内 容.其中,表1包括了文件的标识符.建库 时间,记录个数,结构说明部分的总字节 数等,长度共为32字节.表2进一步说明每 个字段的有关信息,包括字段名称,类型, 长度和小数位个数等.每个字段占32个字节. 在字段描述之后,有一字节(0DH)表示了 文件数据结构说明部分的结束和第一个记录 数据的开始.数据按记录和字段依次排列, 中问无分疆符.每个记录的开始字节是记录 删除标识.当该字节为(2oH)时,表示不删 除.当该字节为(2AH)时.表示有删除. 数据之后为一个字节的文尾标识(1AH) 裹l数据库文件结构说明 位置(字节)长度 O 1—3 4--? 8--9 10--11 12--31 32一(n—1) 1字节 3字节 4字节 2字节 2字节 2O字节 每32字节 1字节 裹2字段描述 位簧(字节)长度 1--1O11 l1l 说明 前两位为版本号 建库日期(年月日) 记录个数 结构部分字节效 记录字节个数 保留 字段描述部分(表2) 说明部分结束标志 0DH 说明 字段名.ASCI字符 字段类型.ASCⅡ 字符 保留 =进制表示字段长度 =进制表示小数位数 保留 工作区标识ID 保留 从表中可以看出,DBF数据库文件主要 包括两部分内容.第一部分是从开始到(32 +32?字段数+1)个字节.第二部分是数据 部分,它是按照第一部分的数据结构说明依 次有序排列的.选样可以通过读取第一部分 微小越计算机开发与应用】帅2.123 坫n 卜¨”∞ll2 的结构信息.在第=部分找到所需的数据位 置和内容. 3语言直接读取DBF 数据库文件的方法 j.打开DBF数据库由于DBF数据库是以 数字和ASCI字符相结合的方式存储文件 的,而且需要对数据库进行读写操作,因此 应采用以读写二进制方式打开文件,耶 fp=fopen(“filename.dbf”, “r+), 5.2j奏取结构说明倌息首先按表1和表2的 结构说明来定义两个结构用以存放数据库结 构描述信息. Structdbf1{ charflag~ chardateIs]; uDsignedlongrecord-hum unsignednl-long; llnsignedrecord~ong; charunse[2o], ): Strucfdbf2~ unsignedcbar char cbar char char cbar char char ), 利用fread函数,将文件的数据结构说明 部分的全部信息读入结构之中. fread(结构1指针,32,1fp)} fread(结构2指针,32,字段个数, fp)’ 3.j读取数据在读取数据之前冼用fse~k 函数确定要读取数据指针的位置,再用fread 函数将数据读到内存.其中字段个数为, (数据结构说明部分字节数一32—1)/32 24囊小型计算机开蹙与应甩tgg2. 4C语言对DBF数据库的 修改,删除和插入 4.1修改DBF数墨库对于DBF文件的某记 录或记录中的某字段内容,可以采用如下步 骤进行修改.首先.用fseek函数确定记录指 针位置,然后利用fwrire函数写入新的内 容.注意当要写入的内容少于记录所规定的 字节长度时,需加空格填满. 4.2■除DBF数据库的记录首先定义一块 内存空闯,把要删除的内容后面的全部数据 读入该内存空间,再将指针移到删除的开始 位置,将上述的内容写回文件之中,并将文 件的记录个数减1. 4.3插ADBF数据库记录首先定义一块内 存空间,将要插入的位置后面的全部数据放 入内存.然后在此位置上写入新的记录内容, 再将指针移至下一个记录开始处,把内存的 数据写回文件中,最后修改记录数. 完成上述修改,删除和插入等功能需要 注意以下几个问题; a.对数据库进行操作的最后一步,要修改建 库日期

文档评论(0)

beoes + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档