WEB开发网
开发学院软件开发VC 二进制文件随机存取的两种方法 阅读

二进制文件随机存取的两种方法

 2007-03-17 21:25:26 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 以下是本人使用C++实现二进制文件随机存取的两种常用方法,写出来,二进制文件随机存取的两种方法,让您见笑,还望方家点拨,与本文相关的源码都作了详细说明,再次感谢您阅读本文,第一种方法:根据记录编号,对每一条记录固定位置存取

本文示例源代码或素材下载

以下是本人使用C++实现二进制文件随机存取的两种常用方法,写出来,让您见笑,还望方家点拨。

第一种方法:根据记录编号,对每一条记录固定位置存取,实现随机存取

设计思想:

每一条记录的记录编号,决定该记录的存取位置。如:第一条记录记录编号是1,放在位置1;第二条记录的记录编号是2,放在位置2;………,依次类推。

要修改第二条记录,首先根据记录编号计算出该记录的存储位置,然后将内置指针直接调至此处,进行修改。

新添记录,可根据它的记录编号存储到文件的相应位置。

这种随机存取方法通俗易懂,简便易行。适用于记录条数不多的文件,要求记录编号尽可能连续。其缺点是存储记录不连续,占用空间大。

工程Random1演示了这种方法,建议您先演示工程,在对该工程有一个了解的基础上再阅读代码。代码中已经对与本文相关的语句作了详细说明,您可以非常方便地读懂。

第二种方法:利用链表指针,实现随机操作

设计思想:

对文件进行操作前,先把文件读入内存,做成链表以方便操作,操作完毕后存盘保存。

这种方法由于使用链表指针,对记录的增加、删减都非常方便。

这种方法不需要记录编号,记录存储连续,占用空间小。其缺点是对程序设计人员要求较高,必须对链表指针有一定了解。

工程Random2演示了这种方法,同样建议您先演示工程,在对该工程有一个了解的基础上再阅读代码。

下面对该工程作几点简要说明:

工程新建了一个类CFileRandom实现文件的随机操作。成员函数add用于增加一个记录;change可以修改一个记录;DescentSort实现降序排列;Display显示所有记录;Read把所有记录调入内存;Remove用于删除一条记录;Save用于将内存中的整个链表存盘保存。

CRandom2Dlg使用CFileRandom类实现具体操作。同样,与本文相关的源码都作了详细说明。

再次感谢您阅读本文,欢迎您批评指正。

Tags:二进制 文件 随机

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接