专利名称:升级文件的制作与数据升级方法
技术领域:
本发明涉及一种数据升级方法,尤其是一种升级文件的制作与数据升级方法。
背景技术:
随着Flash内存容量的不断提升和价格的不断下降,当今各种个人便携式电 子设备中都包含了大容量Flash内存,并将大量信息存入其中以满足用户需求。 目前便携式设备中往往都内建了数百兆Bit乃至数计GB的数据(如,英汉词典, 英语学习数据,地图等)。在如此浩瀚的数据中,难免会出现一些错误之处需要 进行修正,同时也需要将一些新的数据加入其中。此时,就需要对便携式电子 设备中的数据进行更新的动作。
出自于对著作权的保护与减少文件系统性能消耗等目的,这些数据并不是 像个人计算机硬盘中的数据那样以一个个独立的文件存放起来,而是将这些数 据整理合并为一个二进制数据文件,再将这个文件写入Flash内存的指定位置中 供程序调用。这样一来,用户既无法看到独立的数据文件,也无法复制和删除 数据的任何部分,使得数据的著作权以及完整性都得到了保障。
虽然每个产品开发者都有自己的二进制文件组织形式,但通常这些二进制 文件的格式都具有共通的性质,即这些数据都按顺序存放在二进制文件中,通 过二进制数据文件头部偏移指定的字节就可以对所需的数据进行读取。这种结 构让文件即使仅做轻微的数据变动,也会造成所有数据储存位置发生改变,导 致每次文件升级均必须对整个二进制文件进行更新。因此,当使用者的旧文件 必须更新时,使用者必需从网络上下载整份新文件才能做更新。尤其每次更新 往往只是为了一小部份的修改,若每次更新均须下载整份新文件,显然许多时 间将浪费在下载不必要的数据上。
发明内容
本发明为解决背景技术中存在的上述技术问题,而提出一种升级文件的制 作与数据升级方法。
本发明的技术解决方案是本发明为一种升级文件的制作方法,其特殊之 处在于该方法包含下列步骤
1) 提供旧文件与新文件,旧文件由多个旧数据单元所组成,新文件由多个 新数据单元所组成;
2) 确定新文件中待处理的起始数据单元;
3) 从待处理的起始数据单元开始,在旧文件的指定范围中,依序对新旧数 据单元进行比对;
4) 与旧文件内容相同的多个连续数据单元构成数据片段,并以压缩编码数 据块记录;
5) 与旧文件内容相异的多个连续数据单元构成数据片段,以非压縮编码数 据块记录;
6) 重复上述步骤4),直到新文件中所有数据单元均已与旧文件对比完毕为 止;组合压缩编码数据块与非压縮编码数据块,形成升级文件。
上述压縮编码数据块包含压縮标记码,用来指出压縮编码数据块的编号及 其属性。
上述压縮编码数据块包含相同数据长度码,用来指出相同的数据长度。 上述压缩编码数据块包含相同数据起始位置码,用来指出与旧数据单元相 同的新数据单元的数据起始位置。
上述非压縮编码数据块包含异动数据长度码,用来指出异动数据单元的长度。
一种数据升级的方法,用来将旧文件升级成新文件,旧文件由多个旧数据 单元所组成,新文件由多个新数据单元所组成,其特殊之处在于该方法包含 下列步骤
O读取升级文件,升级文件包含压缩编码数据块与非压縮编码数据块,压 縮编码数据块用来记录与旧数据单元相同的新数据单元,非压縮编码数据块用 来记录与旧数据单元相异的新数据单元,非压缩编码数据块包含异动数据单元;
2) 创建空的新文件;
3) 根据压縮编码数据块,在旧文件中取得与新数据片段相同的旧数据片段 的数据单元起始位置及长度;
4) 根据旧数据片段的起始位置及长度,在旧文件中取得数据片段包含的所 有数据单元内容依序写入新文件中;
5) 根据非压縮编码数据块,取得数据片段所有的异动数据单元,并将其内 容写入新文件;
6) 将完整的新文件覆盖旧文件完成升级。
上述压縮编码数据块包含压縮标记码,用来指出压縮编码数据块的编号及 其属性。
上述压縮编码数据块包含相同数据长度码,用来指出相同的数据长度。 上述压縮编码数据块包含相同数据起始位置码,用来指出与旧数据单元相 同的新数据单元的数据起始位置。
上述非压縮编码数据块包含异动数据长度码,用来指出异动数据单元的长度。
本发明提供的升级文件的制作与数据升级方法,其通过获取新旧文件的内 容实质差异部份及压縮新旧文件内容相同部份,形成一个小巧的升级文件,使 得对升级文件进行书数据升级的过程中,只需要对旧文件中修改的数据进行更 新即可,无需每次更新均须下载整份新文件,更新效率高。有效的解决了背景 技术的更新档案因包含许多未经处理的新旧文件数据相同部份,导致更新档过 于庞大,使得用户每次下载更新档均需耗费许多时间的问题。
图1为升级文件的制作方法流程图2为以压縮编码数据块记录与旧数据片段相同的新数据片段示意图; 图3为以非压縮编码数据块记录与旧数据相异的新数据片段示意图; 图4为数据升级方法流程图; 图5为升级文件示意图。
其中,101-旧文件,102-新文件,103-对比范围,104压縮编码数据块,105-压縮标记码,106-相同数据长度码,107-相同数据起始位置码,108-旧数据单元, 109-新数据单元,110-相同数据的起始位置,111-待压縮新数据片段,112-与新 数据片段匹配的旧数据片段,201-非压縮编码数据块,202-非压縮标记码,203-异动数据长度码,204-异动数据单元,205-非压缩新数据片段,C01-升级文件。
具体实施例方式
参见图l、 2、 3,本发明升级文件的制作方法,包含下列步骤
步骤201:提供旧文件101和新文件102,旧文件IOI由多个旧数据单元108 所组成,新文件102由多个新数据单元109所组成。
步骤202:确定新文件102待处理的起始数据单元109。
初始时即为新文件中首个数据单元;处理过程中即为新文件中紧接上个数据 片段的数据单元。
步骤203:从待处理的起始数据单元109开始,在旧文件101的指定范围103
中,依序对数据片段进行比对,找出最佳匹配位置110以及匹配长度(从该数 据单元开始新文件和旧文件匹配的数据单元数量最多)。
步骤204:将进行比对后,与旧文件相同的多个连续数据单元组成数据片段 111或与旧文件相异的多个连续数据单元组成数据片段205。
步骤205:以压缩编码数据块104记录与旧数据片段112相同的新数据片段 111。
多个位置连续数据单元构成一个与旧数据片段112相同的待压缩新数据片段 111。对比过程中,待压縮新数据片段111将被一个压縮编码数据块104所取代, 压縮编码数据块104由压縮标记码105、相同数据长度码106与相同数据起始位 置码107所组成。由于原先占据相当大空间的待压縮新数据片段111被一个占 据空间相当小的压縮编码数据块所取代,因此可达到相当好的档案压縮效果。
步骤206:以非压縮编码数据块201记录与旧文件中指定范围103中数据相 异的新数据片段205。
多个位置连续且与旧文件中指定范围103中数据相异的新数据单元构成一 个非压縮新数据片段205。对比过程中,非压縮新数据片段205将被一个非压縮 编码数据块201所取代,非压縮编码数据块201由非压縮标记码202、异动数据 长度码203与异动数据单元204所组成。
步骤207:判断是否所有新文件中数据单元109均己与旧文件101对比完毕。 若仍有数据单元109尚未与旧文件101比对,则继续步骤202。 若所有数据单元109均已和旧文件101比对完毕,则继续步骤208。 步骤208:组合压縮编码数据块104与非压縮编码数据块201,形成升级文
件COl。
将所有对比过程中所产生的压縮编码数据块104与非压縮编码数据块 201组合成一份升级文件C01。
参见图4、 5,本发明数据升级的方法,包含下列步骤
步骤301:读取升级文件COl,升级文件C01包含压縮编码数据块104与非 压縮编码数据块201,压缩编码数据块104用来记录与旧数据片段112相同的新 数据片段111,非压縮编码数据块201用来记录与旧数据相异的新数据片段205, 非压縮编码数据块201包含异动数据单元204。
步骤302:创建空的新文件102。
步骤303:根据压缩编码数据块104,在旧文件IOI中取得与新数据片段lll 相同的旧数据片段112的长度及起始位置。
从压縮编码数据块104的相同数据长度码106及相同数据起始位置码107可 取得与新数据片段111相同的旧数据片段112的长度与起始位置。
步骤304:根据旧数据片段112的起始位置及长度,在旧文件101中取得旧 数据内容,并将其写入新文件102。
步骤305:根据非压縮编码数据块201,取得异动数据单元204及异动数据 单元204的长度,并将数据写入新文件102。
从非压縮编码数据块201的异动数据单元204及异动数据长度码203可取得 异动数据单元204及异动数据单元204的长度。
步骤306:将生成的完整新文件102覆盖旧文件101完成升级。
权利要求
1、一种升级文件的制作方法,其特征在于该方法包含下列步骤1)提供旧文件与新文件,旧文件由多个旧数据单元所组成,新文件由多个新数据单元所组成;2)确定新文件中待处理的起始数据单元;3)从待处理的起始数据单元开始,在旧文件的指定范围中,依序对新旧数据单元进行比对;4)与旧文件内容相同的多个连续数据单元构成数据片段,并以压缩编码数据块记录;5)与旧文件内容相异的多个连续数据单元构成数据片段,以非压缩编码数据块记录;6)重复上述步骤4),直到新文件中所有数据单元均已与旧文件对比完毕为止;组合压缩编码数据块与非压缩编码数据块,形成升级文件。
2、 根据权利要求1所述的升级文件的制作方法,其特征在于所述压縮编 码数据块包含压縮标记码,用来指出压缩编码数据块的编号及其属性。
3、 根据权利要求1所述的升级文件的制作方法,其特征在于所述压縮编码数据块包含相同数据长度码,用来指出相同的数据长度。
4、 根据权利要求1所述的升级文件的制作方法,其特征在于所述压縮编 码数据块包含相同数据起始位置码,用来指出与旧数据单元相同的新数据单元 的数据起始位置。
5、 根据权利要求1所述的升级文件的制作方法,其特征在于所述非压縮 编码数据块包含异动数据长度码,用来指出异动数据单元的长度。
6、 一种数据升级的方法,用来将旧文件升级成新文件,旧文件由多个旧数据单元所组成,新文件由多个新数据单元所组成,其特征在于该方法包含下 列步骤1) 读取升级文件,升级文件包含压缩编码数据块与非压縮编码数据块,压 縮编码数据块用来记录与旧数据单元相同的新数据单元,非压縮编码数据块用 来记录与旧数据单元相异的新数据单元,非压縮编码数据块包含异动数据单元;2) 创建空的新文件; 3) 根据压缩编码数据块,在旧文件中取得与新数据片段相同的旧数据片段 的数据单元起始位置及长度;4) 根据旧数据片段的起始位置及长度,在旧文件中取得数据片段包含的所 有数据单元内容依序写入新文件中;5) 根据非压縮编码数据块,取得数据片段所有的异动数据单元,并将其内 容写入新文件;6) 将完整的新文件覆盖旧文件完成升级。
7、 根据权利要求6所述的数据升级的方法,其特征在于所述压缩编码数 据块包含压縮标记码,用来指出压縮编码数据块的编号及其属性。
8、 根据权利要求6所述的数据升级的方法,其特征在于所述压縮编码数 据块包含相同数据长度码,用来指出相同的数据长度。
9、 根据权利要求6所述的数据升级的方法,其特征在于所述压縮编码数 据块包含相同数据起始位置码,用来指出与旧数据单元相同的新数据单元的数 据起始位置。
10、 根据权利要求6所述的数据升级的方法,其特征在于所述非压縮编 码数据块包含异动数据长度码,用来指出异动数据单元的长度。
全文摘要
本发明涉及一种升级文件的制作与数据升级方法,该方法包括以下步骤1)提供旧文件与新文件,旧文件由多个旧数据单元所组成,新文件由多个新数据单元所组成;2)确定新文件中待处理的起始数据单元;3)从待处理的起始数据单元开始,在旧文件的指定范围中,依序对新旧数据单元进行比对;4)与旧文件内容相同的多个连续数据单元构成数据片段,并以压缩编码数据块记录;5)与旧文件内容相异的多个连续数据单元构成数据片段,以非压缩编码数据块记录。本发明可有效解决背景技术的更新档案因包含许多未经处理的新旧文件数据相同部分,导致更新档过于庞大,使得用户每次下载更新档均需耗费许多时间的问题。
文档编号G06F17/30GK101382961SQ20081023188
公开日2009年3月11日 申请日期2008年10月24日 优先权日2008年10月24日
发明者闫海红, 陈淮琰 申请人:无敌科技(西安)有限公司