压缩文件的修改方法与装置与流程

文档序号:12719779阅读:368来源:国知局
压缩文件的修改方法与装置与流程

本发明涉及计算机技术,尤其涉及一种压缩文件的修改方法与装置。



背景技术:

随着计算机技术和大数据的发展,在文件传输尤其是大数据文件的传输过程中,需要对文件进行压缩,以提高传输速度。

现有常见的压缩文件方法主要有gzip方法和snappy方法,其可以快速准确地对文件进行压缩。但是,在实际使用过程中,常常遇到对压缩文件进行修改的情况。目前,gzip方法或者snappy方法对压缩文件进行修改时,均需要先对压缩文件进行解压,得到文本文件,接着对文本文件进行修改,然后,再对修改后的文本文件进行压缩。

由上述可知,现有对压缩文件进行修改时,必须经过解压、修改和压缩三个步骤,其操作繁琐,耗时长。



技术实现要素:

本发明实施例提供一种压缩文件的修改方法与装置,用以解决现有技术对压缩文件进行修改时,其操作繁琐,耗时长的技术问题。

第一方面,本发明实施例提供一种压缩文件的修改方法,包括:

接收用户输入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于将所述压缩文件中的待修改字符更新为所述修改字符;

解析所述压缩文件,获得所述压缩文件的码表和所述压缩文件的二进制码流;其中,所述码表包括所述压缩文件中的不同字符对应的二进制码,所述二进制码流包括按照所述压缩文件中字符顺序排列的二进制码;

根据所述码表,获得所述待修改字符的第一二进制码和所述修改字符的第二二进制码;

将所述二进制码流中的所述第一二进制码替换为所述第二二进制码。

结合第一方面,在第一方面的第一种可能的实施方式中,所述将所述二进制码流中的所述第一二进制码替换为所述第二二进制码,具体包括:

获取所述二进制码流中的所述第一二进制码;

将所述第一二进制码替换为所述第二二进制码。

结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述待修改字符包括多个第一字符,所述第一二进制码包括每个第一字符对应的二进制码;所述获取所述二进制码流中的所述第一二进制码,具体包括:

逐一判断所述二进制码流中每个字符对应的二进制码是否属于所述第一二进制码;

若是,则按照判断顺序依次获取所述二进制码流中属于所述第一二进制码的第三二进制码的位置;

判断所获取的第三二进制码的位置是否连续;

若所获取的第三二进制码的位置连续,则将所述位置连续的第三二进制码作为一二进制码串,并判断二进制码串的码字顺序是否与所述第一二进制码的码字顺序相同;

若相同,则确定所述二进制码串为所述第一二进制码。

结合第一方面至第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述待修改字符包括第二字符和第三字符,所述第一二进制码包括第二字符对应的二进制码和第三字符对应的二进制码,且所述第二字符对应的二进制码和第三字符对应的二进制码按照所述待修改字符的字符顺序排列,则所述获取所述二进制码流中的所述第一二进制码,具体包括:

逐一查询所述二进制码流中是否存在与所述第二字符的二进制码匹配的二进制码;

当所述二进制码流中第i个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i个字符的二进制码;

判断所述二进制码流中第i+1个字符的二进制码是否与所述第三字符的二进制码匹配;

当所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+1个字符的二进制码,并将所述第i个字符的二进制码和所述第i+1个字符的二进制码确定为所述第一二进制码。

结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,当判断所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码不匹配时,所述方法还包括:

判断所述二进制码流中第i+2个字符的二进制码是否与所述第二字符的二进制码匹配;

当所述二进制码流中第i+2个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i+2个字符的二进制码;

判断所述二进制码流中第i+3个字符的二进制码是否与所述第三字符的二进制码匹配;

当所述二进制码流中第i+3个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+3个字符的二进制码,并将所述第i+2个字符的二进制码和所述第i+3个字符的二进制码确定为所述第一二进制码。

第二方面,本发明实施例提供一种压缩文件的修改装置,包括:

接收模块,用于接收用户输入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于将所述压缩文件中的待修改字符串更新为所述修改字符串;

解析模块,用于解析所述压缩文件,获得所述压缩文件的码表和所述压缩文件的二进制码流;其中,所述码表包括所述压缩文件中的不同字符对应的二进制码,所述二进制码流包括按照所述压缩文件中字符顺序排列的二进制码;

获取模块,用于根据所述码表,获得所述待修改字符的第一二进制码和所述修改字符的第二二进制码;

替换模块,用于将所述二进制码流中的所述第一二进制码替换为所述第二二进制码。

结合第二方面,在第二方面的第一种可能的实施方式中,所述替换模块包括获取单元和替换单元;

所述获取单元,用于获取所述二进制码流中的所述第一二进制码;

所述替换单元,用于将所述第一二进制码替换为所述第二二进制码。

结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述待修改字符包括多个第一字符,所述第一二进制码包括每个第一字符对应的二进制码,

所述获取单元,具体用于逐一判断所述二进制码流中每个字符对应的二进制码是否属于所述第一二进制码;若是,则按照判断顺序依次获取所述二进制码流中属于所述第一二进制码的第三二进制码的位置;并判断所获取的第三二进制码的位置是否连续;若所获取的第三二进制码的位置连续,则将所述位置连续的第三二进制码作为一二进制码串,并判断二进制码串的码字顺序是否与所述第一二进制码的码字顺序相同;若相同,则确定所述二进制码串为所述第一二进制码。

结合第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述待修改字符包括第二字符和第三字符,所述第一二进制码包括第二字符对应的二进制码和第三字符对应的二进制码,且所述第二字符对应的二进制码和第三字符对应的二进制码按照所述待修改字符的字符顺序排列,

所述获取单元,具体用于逐一查询所述二进制码流中是否存在与所述第二字符的二进制码匹配的二进制码;当所述二进制码流中第i个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i个字符的二进制码;判断所述二进制码流中第i+1个字符的二进制码是否与所述第三字符的二进制码匹配;当所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+1个字符的二进制码,并将所述第i个字符的二进制码和所述第i+1个字符的二进制码确定为所述第一二进制码。

结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,当所述获取单元判断所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码不匹配时,

所述获取单元,还具体用于判断所述二进制码流中第i+2个字符的二进制码是否与所述第二字符的二进制码匹配;当所述二进制码流中第i+2个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i+2个字符的二进制码;判断所述二进制码流中第i+3个字符的二进制码是否与所述第三字符的二进制码匹配;当所述二进制码流中第i+3个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+3个字符的二进制码,并将所述第i+2个字符的二进制码和所述第i+3个字符的二进制码确定为所述第一二进制码。

本发明提供的压缩文件的修改方法,修改装置首先接收用户输入的修改指令,接着解析压缩文件,获得该压缩文件的码表和该压缩文件的码表的二进制码流,然后根据码表,获得修改指令中待修改字符的第一二进制码和修改字符的第二二进制码,最后将二进制码流中的第一二进制码替换成第二二进制码。本实施例的方法直接是对压缩文件的二进制码流进行修改,不需要对压缩文件进行解压和压缩,整个过程简单省时,实现了对压缩文件的快速、简便修改。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的压缩文件的修改方法实施例一的流程示意图;

图2为本发明提供的压缩文件的修改方法实施例二的流程示意图;

图3为本发明提供的压缩文件的修改方法实施例三的流程示意图;

图4为本发明提供的压缩文件的修改方法实施例四的流程示意图;

图5为本发明提供的压缩文件的修改方法实施例五的流程示意图;

图6为本发明提供的压缩文件的修改装置实施例一的示意图;

图7为本发明提供的压缩文件的修改装置实施例二的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明涉及的压缩文件的修改方法与装置,旨在解决现有技术中在对压缩文件进行修改时必须要经过解压、修改和压缩三个步骤,造成其操作繁琐,耗时长的技术问题。

本实施例的技术方案是直接对压缩文件的二进制码流进行修改,即在压缩文件的二进制码流中查询待修改字符对应的二进制码,将二进制码流中的待修改字符的二进制码替换成修改字符的二进制码,进而实现对压缩文件的修改。该方法在整个压缩文件的修改过程中无需对压缩文件进行解压和压缩,进而实现对压缩文件的简便快速修改。

需要说明的是,本文中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本发明提供的压缩文件的修改方法实施例一的流程示意图。本发明实施例的执行主体可以是压缩文件的修改装置,还可以是集成了该压缩文件的修改装置的设备,为了便于阐述以下将本实施例的执行主体简称为修改装置,该修改装置可以通过软件和/或硬件实现。本实施例涉及的是修改装置根据用户输入的修改指令,将压缩文件中的待修改字符的二进制码替换成修改字符的二进制码的具体过程。如图1所示,该方法包括:

S101:接收用户输入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于将所述压缩文件中的待修改字符串更新为所述修改字符串。

具体的,当用户发现需要对压缩文件进行修改时,向修改装置输入修改指令,修改装置接收用户输入的修改指令。该修改指令中包括待修改字符和修改字符,该修改指令用于指示修改装置将压缩文件中的待修改字符更新为修改字符。例如,当用户需要将压缩文件中的“北京”修改成“上海”时,用户向修改装置输入修改指令,该修改指令中包括待修改字符“北京”和修改字符“上海”,该修改指令用于指示修改装置将压缩文件中的“北京”更新为“上海”。

可选的,本实施例的修改装置中可以保存有上述压缩文件,可选的,修改装置还可以从其他装置(例如寄存器)中读取压缩文件。可选的,当修改装置保存有多个压缩文件时,上述修改装置获得的用户输入的修改指令中还可以包括要修改的压缩文件的标识,修改装置根据该标识可以从多个压缩文件中获得用户需要修改的压缩文件。

S102:解析所述压缩文件,获得所述压缩文件的码表和所述压缩文件的二进制码流;其中,所述码表包括所述压缩文件中的不同字符对应的二进制码,所述二进制码流包括按照所述压缩文件中字符顺序排列的二进制码。

需要说明的是,本申请的压缩文件中包括文件头、码表和二进制码流(即该压缩文件的压缩数据流)。其中,文件头包括压缩文件的基本信息,例如文件名等信息,码表包络该压缩文件中不同字符对应的二进制码,二进制码流包括按照压缩文件中字符顺序排列的二进制码。

具体的,修改装置根据用户输入的修改指令,获得修改指令对应的压缩文件,并对该压缩文件进行解析,获得该压缩文件的码表和该压缩文件的二进制码流(即压缩文件的正文的二进制码流)。

需要说明的是,本实施例的码表中不仅保存有压缩文件中每个字符对应的二进制码,同时还保存有修改字符对应的二进制码,即本实施例中的修改字符在压缩文件的原文中存在。

优选的,本方法中的码表可以是以链的形式存在,方便修改装置查找。

S103:根据所述码表,获得所述待修改字符的第一二进制码和所述修改字符的第二二进制码。

具体的,修改装置根据上述解析获得压缩文件的码表,接着从码表中获得用户输入的修改指令中待修改字符对应的二进制码和修改字符对应的二进制码,为了便于区分,本实施例将修改字符的二进制码称为第一二进制码,将修改字符的二进制码称为第二二进制码,其中,第一、第二没有顺序关系,只起到区分的作用。

例如,假设用户输入的修改指令中的待修改字符为“北京”,修改字符为“上海”,而S102步骤解析获得的压缩文件的码表中“北京”对应的二进制码为“000 001”,“上海”对应的二进制码为“010 011”,这样修改装置根据码表,获得待修改字符“北京”的第一二进制码为“000 001”,修改字符“上海”的第二二进制码为“010 011”。

S104:将所述二进制码流中的所述第一二进制码替换为所述第二二进制码。

具体的,修改装置从上述方法解析获得的压缩文件的二进制码流中查询修改字符对应的第一二进制码,并将二进制码流中第一二进制码替换成第二二进制码。例如,修改装置根据用户输入的修改指令,将压缩文件的二进制码流中的所有修改字符“北京”的第一二进制码为“000 001”替换成修改字符“上海”的第二二进制码为“010 011”,进而实现将压缩文件中的“北京”替换成“上海”。即本实施例的方法,在未对压缩文件进行解压的情况下,通过对压缩文件的二进制码的直接修改,完成对压缩文件的快速、简便修改。

可选的,本实施例的方法还可以是修改装置解析压缩文件,先获得压缩文件的码表,根据码表获得待修改字符的第一二进制码和修改字符的第二二进制码。接着,修改装置再解析压缩文件的正文部分,并且一边解析一边将解析出的压缩文件的二进制码流中的第一二进制码替换盛第二二进制码,进而提高了对压缩文件的修改速度。

本发明提供的压缩文件的修改方法,修改装置首先接收用户输入的修改指令,接着解析压缩文件,获得该压缩文件的码表和该压缩文件的码表的二进制码流,然后根据码表,获得修改指令中待修改字符的第一二进制码和修改字符的第二二进制码,最后将二进制码流中的第一二进制码替换成第二二进制码。本实施例的方法直接是对压缩文件的二进制码流进行修改,不需要对压缩文件进行解压和压缩,整个过程简单省时,实现了对压缩文件的快速、简便修改。

图2为本发明提供的压缩文件的修改方法实施例二的流程示意图,在上述实施例的基础上,本实施例涉及的是修改装置将所述二进制码流中的所述第一二进制码替换为所述第二二进制码的具体过程,即上述S104具体包括:

S201、获取所述二进制码流中的所述第一二进制码。

S202、将所述第一二进制码替换为所述第二二进制码。

具体的,修改装置根据用户输入的修改指令中包括的待修改字符的第一二进制码,在压缩文件的二进制码流中查询第一二进制码,获得所述二进制码流中各第一二进制码。接着,修改装置将二进制码流中的所有第一二进制码替换成第二二进制码。即本实施例的方法,通过将压缩文件的二进制码流中的待修改字符对应的第一二进制码替换成修改字符对应的第二二进制码,进而实现在未对压缩文件进行解压的情况下实现了对压缩文件的修改,使得整个修改过程简单,快速。

本实施例的方法,参照上述例子,假设修改装置接收到的用户输入的修改指令为将待修改字符“北京”修改成“上述”,而根据上述S102和S103的步骤获得待修改字符的“北京”的二进制码“000 001”,修改字符“上海”的二进制码为“010 011”,则修改装置在压缩文件的二进制码流中的查询第一二进制码“000 001”,接着将二进制码流中的所有第一二进制码“000 001”替换成“010011”,进而实现将压缩文件中的“北京”替换成“上海”。即本实施例的方法,未对压缩文件进行解压和压缩,而是通过直接修改压缩文件的二进制码流来实现对压缩文件的修改,其整个修改过程快速、简单。同时,本实施例的方法,首先通过在压缩文件的二进制码流中查询待修改字符的第一二进制码,获取二进制码流中的第一二进制码,接着,才将二进制码流中获取的第一二进制码替换成修改字符的第二二进制码,进而实现对压缩文件的准确修改,避免了将压缩文件的二进制码流中的其他二进制码替换成第二二进制码。

本实施例,当待修改字符包括一个字符时,例如“我”,而该修改字符的二进制码假设为“100”,则修改装置只需要在压缩文件的二进制码流中查找“100”即可。当待修改字符包括多个字符时,例如“北京”,参照上述例子,“北京”对应的第一二进制码为“000 001”,此时,修改装置可以将第一二进制码“000 001”作为一个字符串,判断二进制码流中的每个字符对应的二进制码是否属于该字符串,接着判断所有属于该字符串“000 001”中的二进制码在二进制码流中是否连续,若连续则判断该相邻的两个二进制码的位置是否“000”位于“001”之前,如果是,则可确定该相邻的二进制码为二进制码流中的第一二进制码。

可选的,本实施例还可以将第一二进制码中每个字符对应的二进制码为一个单位,在二进制码流中逐一查询,例如修改装置首先在二进制码流中查询“000”,接着,查询“001”,当二进制码流中查询到的二进制码“000”与二进制码“001”连续,即可获得二进制码流中的第一二进制码,接着,将该第一二进制码替换成第二二进制码,进而实现压缩文件的修改。

本发明提供的压缩文件的修改方法,修改装置在压缩文件的二进制码流中查询待修改字符对应的第一二进制码,将二进制码中所有第一二进制码替换成修改字符的第二二进制码,进而实现对压缩文件的准确快速修改。

图3为本发明提供的压缩文件的修改方法实施例三的流程示意图,在上述实施例的基础上,本实施例涉及的是当待修改字符包括多个第一字符,所述第一二进制码包括每个第一字符对应的二进制码时,修改装置获取二进制码流中的所述第一二进制码的具体过程,即上述S201具体包括:

S301、逐一判断所述二进制码流中每个字符对应的二进制码是否属于所述第一二进制码。

具体的,修改装置从头开始读取压缩文件的二进制码流中每个字符对应的二进制码,并判断每个二进制码是否属于待修改字符的第一二进制码。例如,第一二进制码为“000 001”,压缩文件的二进制码流为“001 000 001……”,修改装置先判断二进制码流中的第一个字符对应的二进制码“001”,判断该“001”是否属于第一二进制码“000 001”。

S302、若是,则按照判断顺序依次获取所述二进制码流中属于所述第一二进制码的第三二进制码的位置。

参照上述例子,修改装置判断上述二进制码流中的第一个字符对应的二进制码“001”属于第一二进制码“000 001”,则将该第一个字符对应的二进制码记为第三二进制码,并获取该第三二进制码“001”在二进制码流中的位置,例如记为“1”。接着,修改装置判断二进制码流中的第二个字符对应的二进制码“000”属于第一二进制码“000 001”,则将该第二个字符对应的二进制码记为第三二进制码,并获取该第三二进制码“000”在二进制码流中的位置,例如记为“2”。再接着,修改装置判断二进制码流中的第三个字符对应的二进制码“001”属于第一二进制码“000 001”,则将该第三个字符对应的二进制码记为第三二进制码,并获取该第三二进制码“001”在二进制码流中的位置,例如记为“3”。参照上述方法,依次判断二进制码流中的所有字符对应的二进制码是否属于第一二进制码,若是,则将二进制码流中属于第一二进制码的二进制码记为第三二进制码,获取每个第三二进制码在二进制码流中的位置。

S303、判断所获取的第三二进制码的位置是否连续。

具体的,根据上述方法即可获取二进制码流中的所有第三二进制码和每个第三二进制码在二进制码流中的位置。接着,修改装置判断获取的第三二进制码的位置是否连续,即判断获取的第三二进制码在二进制码码流中是否是相邻的。参照上述例子,例如修改装置根据上述S302的方法获得第三二进制码“001 000 001”的位置为“1、2、3”,则该第三二进制码的位置连续。

S304、若所获取的第三二进制码的位置连续,则将所述位置连续的第三二进制码作为一二进制码串,并判断二进制码串的码字顺序是否与所述第一二进制码的码字顺序相同。

S305、若相同,则确定所述二进制码串为所述第一二进制码。

具体的,根据上述S303的方法判断获取的第三二进制码的位置连续,则修改装置将位置连续的第三二进制码作为一个二进制码串,该二进制码串的长度与第一二进制码的长度相同。接着,修改装置判断该二进制码串中码字的排列顺序是否与第一二进制码中的码字的排列顺序相同,若相同,则该二进制码串为第一二进制码。参照上述方法,即可获得二进制码流中的所有第一二进制码。

需要说明的是,每获取一个与之前的第三二进制码位置连续的第三二进制码时,则将当前获取的第三二进制码与该当前的第三二进制码位置相邻的第三二进制码组成一个二进制码串,判断该二进制码串中码字的排列顺序是是否与第一二进制码中的码字的顺序相同。可选的,本实施例还可以获取二进制码流中的所有第三二进制码,选出位置连续的第三二进制码,以第一二进制码所包括的码字的数量为单位(例如包括两个码字),从连续的第三二进制码中以两个码字为单位标记二进制码串,其中相邻的二进制码串具有一个相交的码字。参照上述例子,例如第一二进制码为“000 001”,第三二进制码“001 000 001”的位置“1、2、3”连续,此时修改装置将该第三二进制码记为两个二进制码串,即一个为“001 000”、另一个为“000 001”,其中码字“000”为两个二进制码串相交的码字。修改装置判断每个二进制码串中的码字的排列顺序是否与第一二进制码中的码字的排列顺序是否相同,若相同,则确定该二进制码串为第一二进制码。参照上述例子,修改装置将第一个二进制码串“001 000”中码字排列顺序与第一二进制码中的码字的顺序进行比较,确定该第一个二进制码串“001 000”中的码字的排列顺序与第一二进制码“000001”中的码字的排列顺序不相同,即该第一个二进制码串不是第一二进制码。同理,修改装置将第二个二进制码串“000 001”中码字排列顺序与第一二进制码中的码字的顺序进行比较,确定该第二个二进制码串“000 001”中的码字的排列顺序与第一二进制码“000 001”中的码字的排列顺序相同,即该第二个二进制码串为第一二进制码。即本实施例的修改装置根据上述的步骤可以准确快速地获得二进制码流中的所有第一二进制码,进而使得修改装置准确快速地实现对压缩文件的修改。

本发明提供的压缩文件的修改方法,当待修改字符中包括多个第一字符时,修改装置通过逐一判断二进制码流中的每个字符对应的二进制码是否属于第一二进制码,当属于时,获得属于第一二进制码的第三二进制码在二进制码流中的位置,判断第三二进制码的位置是否连续,若连续时,将位置连续的第三二进制码作为一个二进制码串,判断该二进制码串的码字顺序是否与第一二进制的码字顺序相同,若相同,即可确定该二进制码串为第一二进制码,进而快速准确地获得压缩文件的二进制码流中的第一二进制码。

图4为本发明提供的压缩文件的修改方法实施例四的流程示意图,在上述实施例的基础上,本实施例涉及的当待修改字符包括第二字符和第三字符,所述第一二进制码包括第二字符对应的二进制码和第三字符对应的二进制码,且所述第二字符对应的二进制码和第三字符对应的二进制码按照所述待修改字符的字符顺序排列时,修改装置获取二进制码流中的所述第一二进制码的具体过程。即当待修改字符包括两个字符时,上述S201可以采用上述S301-S305的步骤外,还可以采用以下S401-S404的步骤,具体的:

S401、逐一查询所述二进制码流中是否存在与所述第二字符的二进制码匹配的二进制码。

具体的,当修改字符包括第二字符和第三字符时,第一二进制包括第一字符对应的二进制码和第三字符对应的二进制码,并且第一二进制码中第二字符的二进制码和第三二进制码按照顺序排列,例如修改字符为“北京”,即第二字符为“北”,第三字符为“京”,参照上述例子,第二字符“北”的二进制码为“000”,第三字符“京”的二进制码为“001”,即第一二进制码为“000 001”。

修改装置逐一查询压缩文件的二进制码流中是否存在与第二字符“北”的二进制码“000”匹配的二进制码。

S402、当所述二进制码流中第i个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i个字符的二进制码。

具体的,根据上述S401的方法,查询二进制码流中的第i个字符的二进制“000”与上述第二字符“北”的二进制码“000”匹配,则修改装置保存该第i个字符的二进制码“000”。

S403、判断所述二进制码流中第i+1个字符的二进制码是否与所述第三字符的二进制码匹配。

具体的,修改装置确定二进制码流中的第i个字符的二进制码与第二字符的二进制码相同后,判断二进制码流中的第i+1个字符的二进制码是否与第三字符“京”的二进制码为“001”相同。

S404、当所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+1个字符的二进制码,并将所述第i个字符的二进制码和所述第i+1个字符的二进制码确定为所述第一二进制码。

具体的,假设二进制码流中的第i+1个字符的二进制码为“001”时,修改装置判断该第i+1个字符的二进制码“001”与第三字符“京”的二进制码“001”匹配,则将该第i+1个字符的二进制码“001”进行保存,此时,修改装置将压缩文件的二进制码流中的第i个字符的二进制码和第i+1个字符的二进制码确定为第一二进制码“000 001”。即本实施例的方法,通过上述步骤即可快速准确地从二进制码流中获取第一二进制码。

为了进一步说明本实施例的方法,在此举例说明:

参照上述例子,假设修改字符为“北京”,第二字符“北”的二进制码为“000”,第三字符“京”的二进制码为“001”,即第一二进制码为“000 001”,压缩文件的二进制码流为“…000 001 100 000 001…”。修改装置从二进制码流中逐一查询与第二字符“北”的二进制码为“000”匹配的二进制码。经查询,二进制码流中的第i个字符对应的二进制码“000”与第二字符“北”的二进制码为“000”相同,修改装置保存该第i个字符对应的二进制码“000”,同时保存该第i个字符的二进制码在二进制码流中的位置。接着,修改装置判断二进制码流中第i+1个字符的二进制码“001”与第三字符“京”的二进制码为“001”匹配,则修改装置保存该第i+1个字符的二进制码“001”,同时保存该第i+1个字符的二进制码在二进制码流中的位置。此时修改装置将二进制码流中的第i个字符的二进制码“000”和第i+1个字符的二进制码“001”确定为第一二进制码“000 001”。接着,修改装置判断二进制码流中第i+2个字符的二进制码“100”与第二字符的二进制码“000”不同,则修改装置不保存第i+2个字符的二进制码“100”。接着,修改装置根据上述方法判断二进制码流中的第i+3个字符的二进制码“000”与第二字符的二进制码“000”相同,修改装置保存该第i+3个字符的二进制码,同时保存该第i+3个字符的二进制码在二进制码流中的位置。修改装置判断二进制码流中的第i+4个字符的二进制码“001”与第三字符的二进制码“001”相同,修改装置保存该第i+4个字符的二进制码,同时保存该第i+4个字符的二进制码在二进制码流中的位置,将二进制码流中的第i+3个字符和第i+4个字符确定为第一二进制码。参照上述步骤,修改装置即可获取二进制码流中的所有的第一二进制码。

需要说明的是,本实施例的方法是以待修改字符包络两个字符为例进行阐述的,当待修改字符包括多个字符时,依然可以根据上述方法获得,其具体过程与上述待修改字符中包括两个字符的情况相同,在此不再赘述。

本发明提供的压缩文件的修改方法,待修改字符包括第二字符和第三字符,修改装置在二进制码流中首先逐一查询与第一字符的二进制码匹配的二进制码,当二进制码流中第i个字符的二进制码与第二字符的二进制码匹配时,才判断二进制码流中第i+1个字符的二进制码是否与第三字符的二进制码匹配,若匹配则将二进制码流中的第i个字符的二进制码和第i+1个字符的二进制码记为第一二进制码,进而实现准确快速地获得二进制码流中的第一二进制码。

图5为本发明提供的压缩文件的修改方法实施例五的流程示意图,在上述实施例的基础上,本实施涉及的是当修改装置判断二进制码流中第i+1个字符的二进制码与述第三字符的二进制码不匹配时,获取所述二进制码流中的所述第一二进制码的具体过程,如图5所示,本实施例的方法具体可以包括:

S501、逐一查询所述二进制码流中是否存在与所述第二字符的二进制码匹配的二进制码。

S502、当所述二进制码流中第i个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i个字符的二进制码。

S503、判断所述二进制码流中第i+1个字符的二进制码是否与所述第三字符的二进制码匹配;

上述S501-S503与上述S401-S403相同,具体过程参照上述实施例的描述,在此不再赘述。

S504、当判断所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码不匹配时,判断所述二进制码流中第i+2个字符的二进制码是否与所述第二字符的二进制码匹配。

具体的,根据上述步骤,修改装置判断压缩文件的二进制码流中的第i个字符的二进制码与第二字符的二进制码相同,但是二进制码流中的第i+1个字符的二进制码与第三字符的二进制码不相同,则修改装置需要重新判断二进制码流中的第i+2个字符的二进制码是否与第二字符的二进制码匹配。

S505、当所述二进制码流中第i+2个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i+2个字符的二进制码。

具体的,根据上述S504的方法,当修改装置判断二进制码流中的第i+2个字符的二进制码与第二字符的二进制码匹配时,则保存该第i+2个字符的二进制码,同时保存该第i+2个字符的二进制码在二进制码流中的位置。

S506、判断所述二进制码流中第i+3个字符的二进制码是否与所述第三字符的二进制码匹配。

S507、当所述二进制码流中第i+3个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+3个字符的二进制码,并将所述第i+2个字符的二进制码和所述第i+3个字符的二进制码确定为所述第一二进制码。

具体的,当上述S505判断第i+2个字符的二进制码与第二字符的二进制码匹配时,修改装置判断二进制码流中的第i+3个字符的二进制码是否与第三字符的二进制码匹配,当匹配时,修改装置保存该第i+3个字符的二进制码,并保存该第i+3个字符的二进制码在二进制码流中的位置。这样,修改装置将二进制码流中的第i+2个字符的二进制码和第i+3个字符的二进制码确定为第一二进制码。参照上述步骤即可获得压缩文件中的所有第一二进制码。

需要说明的是,本实施例的方法是以待修改字符包络两个字符为例进行阐述的,当待修改字符包括多个字符时,依然可以根据上述方法获得,其具体过程与上述待修改字符中包括两个字符的情况相同,在此不再赘述。

本发明提供的压缩文件的修改方法,当修改装置判断二进制码流中第i+1个字符的二进制码与第三字符的二进制码不匹配时,修改装置判断二进制码流中第i+2个字符的二进制码是否与第二字符的二进制码匹配,若匹配时,判断二进制码流中第i+3个字符的二进制码是否与第三字符的二进制码匹配,若匹配时,将第i+2个字符的二进制码和第i+3个字符的二进制码确定为第一二进制码,进而实现准确快速地获得二进制码流中的第一二进制码。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图6为本发明提供的压缩文件的修改装置实施例一的示意图。该修改装置可以通过软件、硬件或者软硬结合的方式实现,该修改装置可以集成在服务器中,也可以为单独的服务器。如图6所示,本实施例的修改装置可以包括:接收模块10、解析模块20、获取模块30和替换模块40。

接收模块10,用于接收用户输入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于将所述压缩文件中的待修改字符串更新为所述修改字符串。

解析模块20,用于解析所述压缩文件,获得所述压缩文件的码表和所述压缩文件的二进制码流;其中,所述码表包括所述压缩文件中的不同字符对应的二进制码,所述二进制码流包括按照所述压缩文件中字符顺序排列的二进制码。

获取模块30,用于根据所述码表,获得所述待修改字符的第一二进制码和所述修改字符的第二二进制码。

替换模块40,用于将所述二进制码流中的所述第一二进制码替换为所述第二二进制码。

本发明提供的压缩文件的修改装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图7为本发明提供的压缩文件的修改装置实施例二的示意图。在上述实施例的基础上,如图7所示,本实施例的替换模块40可以包括获取单元401和替换单元402。

获取单元401,用于获取所述二进制码流中的所述第一二进制码。

替换单元402,用于将所述第一二进制码替换为所述第二二进制码。

在本实施例的第一种可能的实现方式中,当待修改字符包括多个第一字符,所述第一二进制码包括每个第一字符对应的二进制码时,则

上述获取单元401,具体用于逐一判断所述二进制码流中每个字符对应的二进制码是否属于所述第一二进制码;若是,则按照判断顺序依次获取所述二进制码流中属于所述第一二进制码的第三二进制码的位置;并判断所获取的第三二进制码的位置是否连续;若所获取的第三二进制码的位置连续,则将所述位置连续的第三二进制码作为一二进制码串,并判断二进制码串的码字顺序是否与所述第一二进制码的码字顺序相同;若相同,则确定所述二进制码串为所述第一二进制码。

在本实施例的第二种可能的实现方式中,当上述待修改字符包括第二字符和第三字符,所述第一二进制码包括第二字符对应的二进制码和第三字符对应的二进制码,且所述第二字符对应的二进制码和第三字符对应的二进制码按照所述待修改字符的字符顺序排列时,则

上述获取单元401,具体用于逐一查询所述二进制码流中是否存在与所述第二字符的二进制码匹配的二进制码;当所述二进制码流中第i个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i个字符的二进制码;判断所述二进制码流中第i+1个字符的二进制码是否与所述第三字符的二进制码匹配;当所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+1个字符的二进制码,并将所述第i个字符的二进制码和所述第i+1个字符的二进制码确定为所述第一二进制码。

在本实施例的第三种可能的实现方式中,当所述获取单元401判断所述二进制码流中第i+1个字符的二进制码与所述第三字符的二进制码不匹配时,则

上述获取单元401,还具体用于判断所述二进制码流中第i+2个字符的二进制码是否与所述第二字符的二进制码匹配;当所述二进制码流中第i+2个字符的二进制码与所述第二字符的二进制码匹配时,保存所述第i+2个字符的二进制码;判断所述二进制码流中第i+3个字符的二进制码是否与所述第三字符的二进制码匹配;当所述二进制码流中第i+3个字符的二进制码与所述第三字符的二进制码匹配时,保存所述第i+3个字符的二进制码,并将所述第i+2个字符的二进制码和所述第i+3个字符的二进制码确定为所述第一二进制码。

本发明提供的压缩文件的修改装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1