一种存储文档的方法及系统技术方案

技术编号:10248414 阅读:99 留言:0更新日期:2014-07-24 02:44
一种存储文档的方法,包括:记录文档在编辑过程中产生的至少一处修改变动,及每处所述修改变动在所述文档中的位置信息;扫描所有所述修改变动,确定所有所述修改变动中的每个字符的出现频率,建立哈夫曼树;根据所述哈夫曼树,建立每个所述修改变动的编码串;将所述哈夫曼树、每个所述修改变动的编码串和每个所述修改变动的所述位置信息作为单独的一个文件保存。本发明专利技术还公开了一种存储文档的系统。本发明专利技术解决了存储文档的资源浪费的问题,减少了文档在存储空间的占用率,缓解了存储设备的工作压力。

【技术实现步骤摘要】
【专利摘要】一种存储文档的方法,包括:记录文档在编辑过程中产生的至少一处修改变动,及每处所述修改变动在所述文档中的位置信息;扫描所有所述修改变动,确定所有所述修改变动中的每个字符的出现频率,建立哈夫曼树;根据所述哈夫曼树,建立每个所述修改变动的编码串;将所述哈夫曼树、每个所述修改变动的编码串和每个所述修改变动的所述位置信息作为单独的一个文件保存。本专利技术还公开了一种存储文档的系统。本专利技术解决了存储文档的资源浪费的问题,减少了文档在存储空间的占用率,缓解了存储设备的工作压力。【专利说明】一种存储文档的方法及系统
本专利技术涉及文档处理
,尤其是涉及一种存储文档的方法及系统。
技术介绍
目前,对于文字工作者来说,在编辑文档前,需要将原文档进行备份,再对原文档进行修改,修改后存储。如果对同一个文档进行了多次修改,就需要存储多个修改后的文档。在存储空间一定的情况下,对于容量较小的小型文档来说,对硬盘的存储空间要求不是很大,但是对容量较大的大型文档来说,这种方式无疑会造成存储空间的大大减少,以及存储空间的存储压力多大。文档的改动基于原文档,修改后的文档与原文档会有许多的内容相同,对于多个修改后的文档的相同内容的多次存储容易导致存储空间的利用率下降。
技术实现思路
本专利技术旨在提供一种存储文档的方法,以解决现有技术的多个修改后的文档的相同内容的多次存储容易导致存储空间的利用率下降的问题。在一些说明性实施例中,所述存储文档的方法包括:记录文档在编辑过程中产生的至少一处修改变动,及每处所述修改变动在所述文档中的位置信息;扫描所有所述修改变动,确定所有所述修改变动中的每个字符的出现频率,建立哈夫曼树;根据所述哈夫曼树,建立每个所述修改变动的编码串;将所述哈夫曼树、每个所述修改变动的编码串和每个所述修改变动的所述位置信息作为单独的一个文件保存。本专利技术的另一个目的是提供一种存储文档的系统。在一些说明性实施例中,所述存储文档的系统包括:记录模块,用于记录文档在编辑过程中产生的至少一处修改变动,及每处所述修改变动在所述文档中的位置信息;第一建立模块,用于扫描所有所述修改变动,确定所有所述修改变动中的每个字符的出现频率,建立哈夫曼树;第二建立模块,用于根据所述哈夫曼树,建立每个所述修改变动的编码串;以及存储模块,用于将所述哈夫曼树、每个所述修改变动的编码串和每个所述修改变动的所述位置信息作为单独的一个文件保存。与现有技术相比,本专利技术的说明性实施例包括以下优点:通过只记录文档在每次编辑过程中的产生的修改变动,以及修改变动的位置信息,将每次编辑过程中记录的修改变动,以及修改变动的位置信息以单独的一个文件进行保存的方式,存储空间中只需要存储一份文档,以及该文档在每次编辑结束后产生的每个文件,不需要对该文档的不同版本进行完整的存储,节省了文档的不同版本中相同内容的存储量,提高存储空间的利用率。【专利附图】【附图说明】此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是按照本专利技术的示范实施例的存储流程图;图2是按照本专利技术的示范实施例的哈弗曼树的结构示意图;以及图3是按照本专利技术的示范实施例的系统框图。【具体实施方式】在以下详细描述中,提出大量特定细节,以便于提供对本专利技术的透彻理解。但是,本领域的技术人员会理解,即使没有这些特定细节也可实施本专利技术。在其它情况下,没有详细描述众所周知的方法、过程、组件和电路,以免影响对本专利技术的理解。现在参照图1,图1示出了根据一些说明性实施例的存储文档中存储文档的流程图如图1所示,在一些说明性实施例中,公开了一种存储文档的方法,包括:S11、记录文档在编辑过程中产生的至少一处修改变动,及每处所述修改变动在所述文档中的位置信息。在一些说明性实施例中,每处所述修改变动包括如下之一:增加和/或删除,以及格式改变。其中,增加用于表示文档中的内容增加,例如增加文档内容、增加文档批注等。删除用于表示文档中的内容删减,例如删减文档内容、删减文档批注等;其中,增加和删除用于表示文档中的内容的更换。在一些说明性实施例中,每两处修改变动之间不存在连续关联,即不连续。在一些说明性实施例中,每处所述修改变动的位置信息的记录方式包括:记录修改变动在所述文档中的第几页、第几行、第几个字符前后;或者,该修改变动在所述文档中某字符串的前后。例如,文档的第I页、第2行、第7个字符后增加了字符“我”;则记录“我”,第I页,第2行、第7个字符之后或第8个字符之前,并标记修改变动的属性为正,表示增加;或者,该修改变动在所述文档中的第几页、该页第几段、该段第几行、该行第几个字符前后;或者,该修改变动在所述文档中的第几段、该段第几行,该行第几个字符前后;或者,该修改变动在所述文档中某字符串的前后,例如“AB⑶”中的B之后加入E,变为“ABE⑶”,则记录“E”所在AB之后或所在⑶之前。S12、扫描所有所述修改变动,确定所有所述修改变动中的每个字符的出现频率,建立哈夫曼树;对产生的所有修改变动进行扫描,确定在修改变动出现的每个字符,以及每个字符出现的次数(出现频率),作为每个字符的权重值,根据每个字符的权重值建立哈弗曼树,其过程包括:首先,提取权重值最小的两个字符作为哈弗曼树的两个叶子节点,建立这两个叶子节点的父节点,父节点的权重值为这两个叶子节点的权重值之和;之后,按照权重值从小到大的顺序依次提取一个字符作为哈弗曼树的另一个叶子节点,与目前权重值最大的父节点作为同层节点,继续构建下一个父节点,直至所有字符全部构建到哈弗曼树中;其中,每个父节点分别与其下的两个子节点连接,父节点左侧的连接结构标记为0,父节点右侧的连接结构标记为I ;通过此方法,哈弗曼树中的每个叶子节点表示的字符是唯一的二进制的前缀编码。例如图2所示,是修改变动为“ASCTASCTAAAAACCTTT”的哈夫曼树,其过程包括:通过扫描后,确定A出现次数为7,C出现次数为4,S出现次数为2,T出现次数为5 ;提取字符S和字符C作为哈弗曼树的叶子节点,分别以其权重值进行标记为2和4,建立权重值为6的父节点,并与其子节点连接,左侧连接标记为0,右侧连接标记为I ;再提取字符T,作为哈弗曼树的另一个叶子节点,该叶子节点权重值为5,其与权重值为6的父节点为同层节点,建立权重值为11的父节点,并与其子节点连接,左侧连接标记为O,右侧连接标记为I ;再提取字符A,作为哈弗曼树的另一个叶子节点,该叶子节点权重值为7,其余权重值为11的父节点为同层节点,建立权重值为18的父节点,并与其子节点连接,左侧连接标记为O,右侧连接标记为I ;哈弗曼树建立完成。字符A的二进制编码表示为0,字符T的二进制编码表示为10,字符C的二进制编码表示为110,字符S的二进制编码表示为111。S13、根据所述哈夫曼树,建立每个所述修改变动的编码串;根据哈弗曼树中的字符与二进制编码的关系,确定每个修改变动的编码串;例如修改变动“ASCTASCTAAAAACCTTT”,其根据建立的哈弗曼树,编码串为“01111101001111101000000110110101010”,由于每个字符表示的是一个前缀编码,编码串本文档来自技高网...

【技术保护点】
一种存储文档的方法,其特征在于,包括:记录文档在编辑过程中产生的至少一处修改变动,及每处所述修改变动在所述文档中的位置信息;扫描所有所述修改变动,确定所有所述修改变动中的每个字符的出现频率,建立哈夫曼树;根据所述哈夫曼树,建立每个所述修改变动的编码串;将所述哈夫曼树、每个所述修改变动的编码串和每个所述修改变动的所述位置信息作为单独的一个文件保存。

【技术特征摘要】

【专利技术属性】
技术研发人员:江潮
申请(专利权)人:武汉传神信息技术有限公司
类型:发明
国别省市:湖北;42

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

1