多版本数字图书的差异化存储方法及差异文件的读取方法技术

技术编号:8883160 阅读:136 留言:0更新日期:2013-07-04 02:02
本发明专利技术公开了一种多版本数字图书的差异化存储方法,将原始数字图书存储在磁盘上的一段连续空间内,作为原始文件;将与该原始数字图书不同的每个版本的数字图书分别存储为差异文件,每个差异文件包含:原始文件的起始地址和结束地址、各个差异部分的数据、各个差异部分数据在原始文件中的起始地址和结束地址。本发明专利技术同时公开了对所述差异文件的读取方法,根据差异文件中包含的原始文件的起始地址和结束地址读取原始文件;当读取到各个差异部分在原始文件中的起始地址时,根据差异文件中各个差异部分数据在原始文件中的起始地址和结束地址,读取差异文件中存储的各个差异部分的数据。应用本发明专利技术能够提高空间使用效率,提高检索效率。

【技术实现步骤摘要】

本专利技术涉及一种数据的存储方法,特别涉及一种。
技术介绍
目前,随着网络技术发展和电子书的迅速普及,已经进入了数字图书时代。数字图书时代要解决的其中一个难题就是对于海量数字图书的存储。现有技术中对于一本图书的多个版本,由于使用渠道的不同,都采用分别单独存储的方式进行存储。这种数字图书的存储方法,由于一本图书的不同版本存在的差异通常不是很大,使得对不同版本分别单独存储的方式,造成了对存储空间的浪费,同时也增加了检索的数据量,对检索造成了不必要的困难。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种,以提高存储空间的使用效率。本专利技术提供的这种多版本数字图书的差异化存储方法,包括:将原始数字图书存储在磁盘上的一段连续空间内,作为原始文件;将与该原始数字图书不同的每个版本的数字图书分别存储为差异文件,每个差异文件包含:原始文件的起始地址和结束地址、各个差异部分的数据、各个差异部分数据在原始文件中的起始地址和结束地址。较佳地,将与该原始数字图书不同的每个版本的数字图书分别存储为差异文件包括:21)、以固定长度分别读取原始文件和一不同版本的数字图书进行比较,获取各个差异部分在原始文件中的起始地址和结束地址。22)、建立该版本的差异文件,读取该版本的数字图书的各个差异部分数据,将原始文件的起始地址和结束地址、各个差异部分的数据、各个差异部分数据在原始文件中的起始地址和结束地址写入到该版本的差异文件中。较佳地,所述固定长度为一个扇区的长度。较佳地,所述步骤21)中,利用访问磁盘文件的INT 13H中断获取各个差异部分在原始文件中的起始物理地址,根据起始物理地址和数据长度计算出各个差异部分在原始文件中的结束物理地址。步骤22)所述起始地址和结束地址为起始物理地址和结束物理地址。较佳地,所述起始物理地址和结束物理地址均包括:起始柱面号和扇区号CX、磁头号DH以及驱动器号DL。较佳地,所述步骤22)后进一步包括:计算出原始文件与该版本的数字图书的差异数量,计算出该版本的差异文件的数据长度;将计算出的差异数量、数据长度以及该版本的版本号写入该版本的差异文件中。本专利技术还提供了一种所述差异文件的读取方法,包括:A、根据差异文件中包含的原始文件的起始地址和结束地址读取原始文件;B、当读取到各个差异部分在原始文件中的起始地址时,根据差异文件中各个差异部分数据在原始文件中的起始地址和结束地址,读取差异文件中存储的各个差异部分的数据。较佳地,所述步骤A中:以固定长度读取原始文件,并获取当前读取部分的起始地址;所述步骤B中将当前读取部分的起始地址与差异文件中各个差异部分数据在原始文件中的起始地址进行比较,确定是否当前读取部分的起始地址是否包含在差异文件中。较佳地,所述固定长度为一个扇区的长度。较佳地,所述差异文件中的各个差异部分数据在原始文件中的起始地址为起始物理地址;所述步骤A中,利用访问磁盘文件的INT 13H中断获取当前读取部分的起始物理地址;所述步骤B中,将当前读取部分的起始物理地址与差异文件中各个差异部分数据在原始文件中的起始物理地址进行比较。由上述的技术方案可见,由于本专利技术中对不同版本的数字图书不存储完整的数据,仅存储包含差异部分数据及差异部分信息的差异文件,因此能够提高空间使用效率,同时差异版本文件的存储可以避免检索,待检索文件的总数减少,提高检索效率。附图说明图1为本专利技术的差异化存储方法一较佳实施例中原始文件的存储结构示例图;图2为图1所示实施例中差异文件的存储结构示例图;图3为图1所示实施例中存储差异文件的流程示意图;图4为图3所示实施例中差异文件的文件格式;图5为读取图1所示实施例中差异文件的流程示意图。具体实施例方式以下参照附图并举具体实施例对本专利技术进行详细说明。本专利技术提供的多版本数字图书的差异化存储方法,将原始数字图书存储在磁盘上的一段连续空间内,作为原始文件,并将与该原始数字图书不同的每个版本的数字图书分别存储为差异文件。其中,每个差异文件包含:原始文件的起始地址和结束地址、各个差异部分的数据、各个差异部分数据在原始文件中的起始地址和结束地址。本专利技术还提供了对所述差异文件的读取方法,首先根据差异文件中包含的原始文件的起始地址和结束地址读取原始文件。然后,当读取到各个差异部分在原始文件中的起始地址时,根据差异文件中各个差异部分数据在原始文件中的起始地址和结束地址,读取差异文件中存储的各个差异部分的数据。以下举一个较佳实施例对本专利技术进行详细说明。本实施例中,首先将原始数字图书存储在磁盘上的一段连续空间内,该原始文件的存储结构的示例如图1所示:该原始文件存储在了从三扇区二磁道第五柱面到四三区三磁道第十柱面的一段连续空间内。然后将与该原始数字图书不同的每个版本的数字图书分别存储为差异文件。该差异文件的存储结构的示例如图2所示:按顺序存储了原始文件起始地址、原始文件结束地址、差异部分一起始地址、差异部分数据、差异部分一结束地址、差异部分二起始地址等等,一直到最后一个差异部分结束地址。本实施例中将原始数字图书存储在磁盘上的一段连续空间内可以采用现有技术的普通存储过程实现,这里不再赘述,以下对本实施例中差异文件的存储过程进行详细描述。如图3所示,本实施例中差异文件的存储过程包括如下步骤:步骤301和302:分别读取原始文件和一个不同版本数字图书的一个扇区的数据,也就是读取512个字节数据。步骤303和304:分别调用操作系统对磁盘文件数据访问的INT 13H中断。步骤305、获取原始文件当前数据的物理地址。由于操作系统对磁盘文件数据的访问最终都会转换为INT 13H中断调用来实现,INT13H的入口参数恰好包含了被访问内容所在扇区的地址标示,并且以扇区的物理地址(CHS)的形式给出。INT 13H中断读/写磁盘功能的入参为:AH = 2H/3H ;AL =要读/写的扇区数;CX=起始柱面号和扇区号;DH=磁头号;DL的驱动器号;ES:BX=数据缓冲区的首地址。因此,本专利技术在操作系统刚调用INT 13H中断时,在读操作时,获取INT 13H中断调用的入口参数,从而截取了 CHS信息。这样,就获取到该512字节的存储磁盘地址CX、DH和DL,然后恢复原INT 13H中断执行。步骤306,将从原始文件读取的数据与从该不同版本数字图书读取的数据进行比较。步骤307,判断这两部分数据是否相同,如果相同,则将地址转移到原始文件和该不同版本数字图书的下一个扇区后,返回步骤301和302 ;否则执行步骤308。本步骤中,可以采用现有常用的数据比较的软件来实现,这里不再赘述。步骤308、将从该不同版本数字图书读取的数据作为差异部分数据写入到差异文件中,并将步骤305获得的原始文件当前数据的物理地址,作为差异部分在原始文件中的地址也写入到差异文件中。本步骤中存储的差异部分在原始文件中的地址包括起始地址和结束地址;起始地址是在步骤305中直接获取的,结束地址可以在步骤305中计算出来,也可以在本步骤中计算出来。结束地址是根据差异部分的起始地址、编号、和每个差异部分的数据长度(实际为512字节)计算出来的。步骤309、判断是否读完原始文件,如果是,则执行步骤310 ;否则,将地址转移到原始文件和该不同版本数字图书的下一个扇区后,返回步骤3本文档来自技高网...

【技术保护点】
一种多版本数字图书的差异化存储方法,其特征在于:将原始数字图书存储在磁盘上的一段连续空间内,作为原始文件;将与该原始数字图书不同的每个版本的数字图书分别存储为差异文件,每个差异文件包含:原始文件的起始地址和结束地址、各个差异部分的数据、各个差异部分数据在原始文件中的起始地址和结束地址。

【技术特征摘要】

【专利技术属性】
技术研发人员:罗旭龙
申请(专利权)人:北京中文在线数字出版股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1