本發(fā)明涉及計算機技術(shù),尤其涉及一種壓縮文件的修改方法與裝置。
背景技術(shù):
隨著計算機技術(shù)和大數(shù)據(jù)的發(fā)展,在文件傳輸尤其是大數(shù)據(jù)文件的傳輸過程中,需要對文件進行壓縮,以提高傳輸速度。
現(xiàn)有常見的壓縮文件方法主要有g(shù)zip方法和snappy方法,其可以快速準確地對文件進行壓縮。但是,在實際使用過程中,常常遇到對壓縮文件進行修改的情況。目前,gzip方法或者snappy方法對壓縮文件進行修改時,均需要先對壓縮文件進行解壓,得到文本文件,接著對文本文件進行修改,然后,再對修改后的文本文件進行壓縮。
由上述可知,現(xiàn)有對壓縮文件進行修改時,必須經(jīng)過解壓、修改和壓縮三個步驟,其操作繁瑣,耗時長。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種壓縮文件的修改方法與裝置,用以解決現(xiàn)有技術(shù)對壓縮文件進行修改時,其操作繁瑣,耗時長的技術(shù)問題。
第一方面,本發(fā)明實施例提供一種壓縮文件的修改方法,包括:
接收用戶輸入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于將所述壓縮文件中的待修改字符更新為所述修改字符;
解析所述壓縮文件,獲得所述壓縮文件的碼表和所述壓縮文件的二進制碼流;其中,所述碼表包括所述壓縮文件中的不同字符對應(yīng)的二進制碼,所述二進制碼流包括按照所述壓縮文件中字符順序排列的二進制碼;
根據(jù)所述碼表,獲得所述待修改字符的第一二進制碼和所述修改字符的第二二進制碼;
將所述二進制碼流中的所述第一二進制碼替換為所述第二二進制碼。
結(jié)合第一方面,在第一方面的第一種可能的實施方式中,所述將所述二進制碼流中的所述第一二進制碼替換為所述第二二進制碼,具體包括:
獲取所述二進制碼流中的所述第一二進制碼;
將所述第一二進制碼替換為所述第二二進制碼。
結(jié)合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式中,所述待修改字符包括多個第一字符,所述第一二進制碼包括每個第一字符對應(yīng)的二進制碼;所述獲取所述二進制碼流中的所述第一二進制碼,具體包括:
逐一判斷所述二進制碼流中每個字符對應(yīng)的二進制碼是否屬于所述第一二進制碼;
若是,則按照判斷順序依次獲取所述二進制碼流中屬于所述第一二進制碼的第三二進制碼的位置;
判斷所獲取的第三二進制碼的位置是否連續(xù);
若所獲取的第三二進制碼的位置連續(xù),則將所述位置連續(xù)的第三二進制碼作為一二進制碼串,并判斷二進制碼串的碼字順序是否與所述第一二進制碼的碼字順序相同;
若相同,則確定所述二進制碼串為所述第一二進制碼。
結(jié)合第一方面至第一方面的第一種可能的實施方式,在第一方面的第三種可能的實施方式中,所述待修改字符包括第二字符和第三字符,所述第一二進制碼包括第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼,且所述第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼按照所述待修改字符的字符順序排列,則所述獲取所述二進制碼流中的所述第一二進制碼,具體包括:
逐一查詢所述二進制碼流中是否存在與所述第二字符的二進制碼匹配的二進制碼;
當所述二進制碼流中第i個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i個字符的二進制碼;
判斷所述二進制碼流中第i+1個字符的二進制碼是否與所述第三字符的二進制碼匹配;
當所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+1個字符的二進制碼,并將所述第i個字符的二進制碼和所述第i+1個字符的二進制碼確定為所述第一二進制碼。
結(jié)合第一方面的第三種可能的實施方式,在第一方面的第四種可能的實施方式中,當判斷所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼不匹配時,所述方法還包括:
判斷所述二進制碼流中第i+2個字符的二進制碼是否與所述第二字符的二進制碼匹配;
當所述二進制碼流中第i+2個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i+2個字符的二進制碼;
判斷所述二進制碼流中第i+3個字符的二進制碼是否與所述第三字符的二進制碼匹配;
當所述二進制碼流中第i+3個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+3個字符的二進制碼,并將所述第i+2個字符的二進制碼和所述第i+3個字符的二進制碼確定為所述第一二進制碼。
第二方面,本發(fā)明實施例提供一種壓縮文件的修改裝置,包括:
接收模塊,用于接收用戶輸入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于將所述壓縮文件中的待修改字符串更新為所述修改字符串;
解析模塊,用于解析所述壓縮文件,獲得所述壓縮文件的碼表和所述壓縮文件的二進制碼流;其中,所述碼表包括所述壓縮文件中的不同字符對應(yīng)的二進制碼,所述二進制碼流包括按照所述壓縮文件中字符順序排列的二進制碼;
獲取模塊,用于根據(jù)所述碼表,獲得所述待修改字符的第一二進制碼和所述修改字符的第二二進制碼;
替換模塊,用于將所述二進制碼流中的所述第一二進制碼替換為所述第二二進制碼。
結(jié)合第二方面,在第二方面的第一種可能的實施方式中,所述替換模塊包括獲取單元和替換單元;
所述獲取單元,用于獲取所述二進制碼流中的所述第一二進制碼;
所述替換單元,用于將所述第一二進制碼替換為所述第二二進制碼。
結(jié)合第二方面的第一種可能的實施方式,在第二方面的第二種可能的實施方式中,所述待修改字符包括多個第一字符,所述第一二進制碼包括每個第一字符對應(yīng)的二進制碼,
所述獲取單元,具體用于逐一判斷所述二進制碼流中每個字符對應(yīng)的二進制碼是否屬于所述第一二進制碼;若是,則按照判斷順序依次獲取所述二進制碼流中屬于所述第一二進制碼的第三二進制碼的位置;并判斷所獲取的第三二進制碼的位置是否連續(xù);若所獲取的第三二進制碼的位置連續(xù),則將所述位置連續(xù)的第三二進制碼作為一二進制碼串,并判斷二進制碼串的碼字順序是否與所述第一二進制碼的碼字順序相同;若相同,則確定所述二進制碼串為所述第一二進制碼。
結(jié)合第二方面的第一種可能的實施方式,在第二方面的第三種可能的實施方式中,所述待修改字符包括第二字符和第三字符,所述第一二進制碼包括第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼,且所述第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼按照所述待修改字符的字符順序排列,
所述獲取單元,具體用于逐一查詢所述二進制碼流中是否存在與所述第二字符的二進制碼匹配的二進制碼;當所述二進制碼流中第i個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i個字符的二進制碼;判斷所述二進制碼流中第i+1個字符的二進制碼是否與所述第三字符的二進制碼匹配;當所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+1個字符的二進制碼,并將所述第i個字符的二進制碼和所述第i+1個字符的二進制碼確定為所述第一二進制碼。
結(jié)合第二方面的第三種可能的實施方式,在第二方面的第四種可能的實施方式中,當所述獲取單元判斷所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼不匹配時,
所述獲取單元,還具體用于判斷所述二進制碼流中第i+2個字符的二進制碼是否與所述第二字符的二進制碼匹配;當所述二進制碼流中第i+2個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i+2個字符的二進制碼;判斷所述二進制碼流中第i+3個字符的二進制碼是否與所述第三字符的二進制碼匹配;當所述二進制碼流中第i+3個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+3個字符的二進制碼,并將所述第i+2個字符的二進制碼和所述第i+3個字符的二進制碼確定為所述第一二進制碼。
本發(fā)明提供的壓縮文件的修改方法,修改裝置首先接收用戶輸入的修改指令,接著解析壓縮文件,獲得該壓縮文件的碼表和該壓縮文件的碼表的二進制碼流,然后根據(jù)碼表,獲得修改指令中待修改字符的第一二進制碼和修改字符的第二二進制碼,最后將二進制碼流中的第一二進制碼替換成第二二進制碼。本實施例的方法直接是對壓縮文件的二進制碼流進行修改,不需要對壓縮文件進行解壓和壓縮,整個過程簡單省時,實現(xiàn)了對壓縮文件的快速、簡便修改。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的壓縮文件的修改方法實施例一的流程示意圖;
圖2為本發(fā)明提供的壓縮文件的修改方法實施例二的流程示意圖;
圖3為本發(fā)明提供的壓縮文件的修改方法實施例三的流程示意圖;
圖4為本發(fā)明提供的壓縮文件的修改方法實施例四的流程示意圖;
圖5為本發(fā)明提供的壓縮文件的修改方法實施例五的流程示意圖;
圖6為本發(fā)明提供的壓縮文件的修改裝置實施例一的示意圖;
圖7為本發(fā)明提供的壓縮文件的修改裝置實施例二的示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明涉及的壓縮文件的修改方法與裝置,旨在解決現(xiàn)有技術(shù)中在對壓縮文件進行修改時必須要經(jīng)過解壓、修改和壓縮三個步驟,造成其操作繁瑣,耗時長的技術(shù)問題。
本實施例的技術(shù)方案是直接對壓縮文件的二進制碼流進行修改,即在壓縮文件的二進制碼流中查詢待修改字符對應(yīng)的二進制碼,將二進制碼流中的待修改字符的二進制碼替換成修改字符的二進制碼,進而實現(xiàn)對壓縮文件的修改。該方法在整個壓縮文件的修改過程中無需對壓縮文件進行解壓和壓縮,進而實現(xiàn)對壓縮文件的簡便快速修改。
需要說明的是,本文中的術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。
下面以具體地實施例對本發(fā)明的技術(shù)方案進行詳細說明。下面這幾個具體的實施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實施例不再贅述。
圖1為本發(fā)明提供的壓縮文件的修改方法實施例一的流程示意圖。本發(fā)明實施例的執(zhí)行主體可以是壓縮文件的修改裝置,還可以是集成了該壓縮文件的修改裝置的設(shè)備,為了便于闡述以下將本實施例的執(zhí)行主體簡稱為修改裝置,該修改裝置可以通過軟件和/或硬件實現(xiàn)。本實施例涉及的是修改裝置根據(jù)用戶輸入的修改指令,將壓縮文件中的待修改字符的二進制碼替換成修改字符的二進制碼的具體過程。如圖1所示,該方法包括:
S101:接收用戶輸入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于將所述壓縮文件中的待修改字符串更新為所述修改字符串。
具體的,當用戶發(fā)現(xiàn)需要對壓縮文件進行修改時,向修改裝置輸入修改指令,修改裝置接收用戶輸入的修改指令。該修改指令中包括待修改字符和修改字符,該修改指令用于指示修改裝置將壓縮文件中的待修改字符更新為修改字符。例如,當用戶需要將壓縮文件中的“北京”修改成“上?!睍r,用戶向修改裝置輸入修改指令,該修改指令中包括待修改字符“北京”和修改字符“上海”,該修改指令用于指示修改裝置將壓縮文件中的“北京”更新為“上?!?。
可選的,本實施例的修改裝置中可以保存有上述壓縮文件,可選的,修改裝置還可以從其他裝置(例如寄存器)中讀取壓縮文件。可選的,當修改裝置保存有多個壓縮文件時,上述修改裝置獲得的用戶輸入的修改指令中還可以包括要修改的壓縮文件的標識,修改裝置根據(jù)該標識可以從多個壓縮文件中獲得用戶需要修改的壓縮文件。
S102:解析所述壓縮文件,獲得所述壓縮文件的碼表和所述壓縮文件的二進制碼流;其中,所述碼表包括所述壓縮文件中的不同字符對應(yīng)的二進制碼,所述二進制碼流包括按照所述壓縮文件中字符順序排列的二進制碼。
需要說明的是,本申請的壓縮文件中包括文件頭、碼表和二進制碼流(即該壓縮文件的壓縮數(shù)據(jù)流)。其中,文件頭包括壓縮文件的基本信息,例如文件名等信息,碼表包絡(luò)該壓縮文件中不同字符對應(yīng)的二進制碼,二進制碼流包括按照壓縮文件中字符順序排列的二進制碼。
具體的,修改裝置根據(jù)用戶輸入的修改指令,獲得修改指令對應(yīng)的壓縮文件,并對該壓縮文件進行解析,獲得該壓縮文件的碼表和該壓縮文件的二進制碼流(即壓縮文件的正文的二進制碼流)。
需要說明的是,本實施例的碼表中不僅保存有壓縮文件中每個字符對應(yīng)的二進制碼,同時還保存有修改字符對應(yīng)的二進制碼,即本實施例中的修改字符在壓縮文件的原文中存在。
優(yōu)選的,本方法中的碼表可以是以鏈的形式存在,方便修改裝置查找。
S103:根據(jù)所述碼表,獲得所述待修改字符的第一二進制碼和所述修改字符的第二二進制碼。
具體的,修改裝置根據(jù)上述解析獲得壓縮文件的碼表,接著從碼表中獲得用戶輸入的修改指令中待修改字符對應(yīng)的二進制碼和修改字符對應(yīng)的二進制碼,為了便于區(qū)分,本實施例將修改字符的二進制碼稱為第一二進制碼,將修改字符的二進制碼稱為第二二進制碼,其中,第一、第二沒有順序關(guān)系,只起到區(qū)分的作用。
例如,假設(shè)用戶輸入的修改指令中的待修改字符為“北京”,修改字符為“上?!保鳶102步驟解析獲得的壓縮文件的碼表中“北京”對應(yīng)的二進制碼為“000 001”,“上海”對應(yīng)的二進制碼為“010 011”,這樣修改裝置根據(jù)碼表,獲得待修改字符“北京”的第一二進制碼為“000 001”,修改字符“上?!钡牡诙M制碼為“010 011”。
S104:將所述二進制碼流中的所述第一二進制碼替換為所述第二二進制碼。
具體的,修改裝置從上述方法解析獲得的壓縮文件的二進制碼流中查詢修改字符對應(yīng)的第一二進制碼,并將二進制碼流中第一二進制碼替換成第二二進制碼。例如,修改裝置根據(jù)用戶輸入的修改指令,將壓縮文件的二進制碼流中的所有修改字符“北京”的第一二進制碼為“000 001”替換成修改字符“上?!钡牡诙M制碼為“010 011”,進而實現(xiàn)將壓縮文件中的“北京”替換成“上?!薄<幢緦嵤├姆椒?,在未對壓縮文件進行解壓的情況下,通過對壓縮文件的二進制碼的直接修改,完成對壓縮文件的快速、簡便修改。
可選的,本實施例的方法還可以是修改裝置解析壓縮文件,先獲得壓縮文件的碼表,根據(jù)碼表獲得待修改字符的第一二進制碼和修改字符的第二二進制碼。接著,修改裝置再解析壓縮文件的正文部分,并且一邊解析一邊將解析出的壓縮文件的二進制碼流中的第一二進制碼替換盛第二二進制碼,進而提高了對壓縮文件的修改速度。
本發(fā)明提供的壓縮文件的修改方法,修改裝置首先接收用戶輸入的修改指令,接著解析壓縮文件,獲得該壓縮文件的碼表和該壓縮文件的碼表的二進制碼流,然后根據(jù)碼表,獲得修改指令中待修改字符的第一二進制碼和修改字符的第二二進制碼,最后將二進制碼流中的第一二進制碼替換成第二二進制碼。本實施例的方法直接是對壓縮文件的二進制碼流進行修改,不需要對壓縮文件進行解壓和壓縮,整個過程簡單省時,實現(xiàn)了對壓縮文件的快速、簡便修改。
圖2為本發(fā)明提供的壓縮文件的修改方法實施例二的流程示意圖,在上述實施例的基礎(chǔ)上,本實施例涉及的是修改裝置將所述二進制碼流中的所述第一二進制碼替換為所述第二二進制碼的具體過程,即上述S104具體包括:
S201、獲取所述二進制碼流中的所述第一二進制碼。
S202、將所述第一二進制碼替換為所述第二二進制碼。
具體的,修改裝置根據(jù)用戶輸入的修改指令中包括的待修改字符的第一二進制碼,在壓縮文件的二進制碼流中查詢第一二進制碼,獲得所述二進制碼流中各第一二進制碼。接著,修改裝置將二進制碼流中的所有第一二進制碼替換成第二二進制碼。即本實施例的方法,通過將壓縮文件的二進制碼流中的待修改字符對應(yīng)的第一二進制碼替換成修改字符對應(yīng)的第二二進制碼,進而實現(xiàn)在未對壓縮文件進行解壓的情況下實現(xiàn)了對壓縮文件的修改,使得整個修改過程簡單,快速。
本實施例的方法,參照上述例子,假設(shè)修改裝置接收到的用戶輸入的修改指令為將待修改字符“北京”修改成“上述”,而根據(jù)上述S102和S103的步驟獲得待修改字符的“北京”的二進制碼“000 001”,修改字符“上?!钡亩M制碼為“010 011”,則修改裝置在壓縮文件的二進制碼流中的查詢第一二進制碼“000 001”,接著將二進制碼流中的所有第一二進制碼“000 001”替換成“010011”,進而實現(xiàn)將壓縮文件中的“北京”替換成“上?!薄<幢緦嵤├姆椒?,未對壓縮文件進行解壓和壓縮,而是通過直接修改壓縮文件的二進制碼流來實現(xiàn)對壓縮文件的修改,其整個修改過程快速、簡單。同時,本實施例的方法,首先通過在壓縮文件的二進制碼流中查詢待修改字符的第一二進制碼,獲取二進制碼流中的第一二進制碼,接著,才將二進制碼流中獲取的第一二進制碼替換成修改字符的第二二進制碼,進而實現(xiàn)對壓縮文件的準確修改,避免了將壓縮文件的二進制碼流中的其他二進制碼替換成第二二進制碼。
本實施例,當待修改字符包括一個字符時,例如“我”,而該修改字符的二進制碼假設(shè)為“100”,則修改裝置只需要在壓縮文件的二進制碼流中查找“100”即可。當待修改字符包括多個字符時,例如“北京”,參照上述例子,“北京”對應(yīng)的第一二進制碼為“000 001”,此時,修改裝置可以將第一二進制碼“000 001”作為一個字符串,判斷二進制碼流中的每個字符對應(yīng)的二進制碼是否屬于該字符串,接著判斷所有屬于該字符串“000 001”中的二進制碼在二進制碼流中是否連續(xù),若連續(xù)則判斷該相鄰的兩個二進制碼的位置是否“000”位于“001”之前,如果是,則可確定該相鄰的二進制碼為二進制碼流中的第一二進制碼。
可選的,本實施例還可以將第一二進制碼中每個字符對應(yīng)的二進制碼為一個單位,在二進制碼流中逐一查詢,例如修改裝置首先在二進制碼流中查詢“000”,接著,查詢“001”,當二進制碼流中查詢到的二進制碼“000”與二進制碼“001”連續(xù),即可獲得二進制碼流中的第一二進制碼,接著,將該第一二進制碼替換成第二二進制碼,進而實現(xiàn)壓縮文件的修改。
本發(fā)明提供的壓縮文件的修改方法,修改裝置在壓縮文件的二進制碼流中查詢待修改字符對應(yīng)的第一二進制碼,將二進制碼中所有第一二進制碼替換成修改字符的第二二進制碼,進而實現(xiàn)對壓縮文件的準確快速修改。
圖3為本發(fā)明提供的壓縮文件的修改方法實施例三的流程示意圖,在上述實施例的基礎(chǔ)上,本實施例涉及的是當待修改字符包括多個第一字符,所述第一二進制碼包括每個第一字符對應(yīng)的二進制碼時,修改裝置獲取二進制碼流中的所述第一二進制碼的具體過程,即上述S201具體包括:
S301、逐一判斷所述二進制碼流中每個字符對應(yīng)的二進制碼是否屬于所述第一二進制碼。
具體的,修改裝置從頭開始讀取壓縮文件的二進制碼流中每個字符對應(yīng)的二進制碼,并判斷每個二進制碼是否屬于待修改字符的第一二進制碼。例如,第一二進制碼為“000 001”,壓縮文件的二進制碼流為“001 000 001……”,修改裝置先判斷二進制碼流中的第一個字符對應(yīng)的二進制碼“001”,判斷該“001”是否屬于第一二進制碼“000 001”。
S302、若是,則按照判斷順序依次獲取所述二進制碼流中屬于所述第一二進制碼的第三二進制碼的位置。
參照上述例子,修改裝置判斷上述二進制碼流中的第一個字符對應(yīng)的二進制碼“001”屬于第一二進制碼“000 001”,則將該第一個字符對應(yīng)的二進制碼記為第三二進制碼,并獲取該第三二進制碼“001”在二進制碼流中的位置,例如記為“1”。接著,修改裝置判斷二進制碼流中的第二個字符對應(yīng)的二進制碼“000”屬于第一二進制碼“000 001”,則將該第二個字符對應(yīng)的二進制碼記為第三二進制碼,并獲取該第三二進制碼“000”在二進制碼流中的位置,例如記為“2”。再接著,修改裝置判斷二進制碼流中的第三個字符對應(yīng)的二進制碼“001”屬于第一二進制碼“000 001”,則將該第三個字符對應(yīng)的二進制碼記為第三二進制碼,并獲取該第三二進制碼“001”在二進制碼流中的位置,例如記為“3”。參照上述方法,依次判斷二進制碼流中的所有字符對應(yīng)的二進制碼是否屬于第一二進制碼,若是,則將二進制碼流中屬于第一二進制碼的二進制碼記為第三二進制碼,獲取每個第三二進制碼在二進制碼流中的位置。
S303、判斷所獲取的第三二進制碼的位置是否連續(xù)。
具體的,根據(jù)上述方法即可獲取二進制碼流中的所有第三二進制碼和每個第三二進制碼在二進制碼流中的位置。接著,修改裝置判斷獲取的第三二進制碼的位置是否連續(xù),即判斷獲取的第三二進制碼在二進制碼碼流中是否是相鄰的。參照上述例子,例如修改裝置根據(jù)上述S302的方法獲得第三二進制碼“001 000 001”的位置為“1、2、3”,則該第三二進制碼的位置連續(xù)。
S304、若所獲取的第三二進制碼的位置連續(xù),則將所述位置連續(xù)的第三二進制碼作為一二進制碼串,并判斷二進制碼串的碼字順序是否與所述第一二進制碼的碼字順序相同。
S305、若相同,則確定所述二進制碼串為所述第一二進制碼。
具體的,根據(jù)上述S303的方法判斷獲取的第三二進制碼的位置連續(xù),則修改裝置將位置連續(xù)的第三二進制碼作為一個二進制碼串,該二進制碼串的長度與第一二進制碼的長度相同。接著,修改裝置判斷該二進制碼串中碼字的排列順序是否與第一二進制碼中的碼字的排列順序相同,若相同,則該二進制碼串為第一二進制碼。參照上述方法,即可獲得二進制碼流中的所有第一二進制碼。
需要說明的是,每獲取一個與之前的第三二進制碼位置連續(xù)的第三二進制碼時,則將當前獲取的第三二進制碼與該當前的第三二進制碼位置相鄰的第三二進制碼組成一個二進制碼串,判斷該二進制碼串中碼字的排列順序是是否與第一二進制碼中的碼字的順序相同。可選的,本實施例還可以獲取二進制碼流中的所有第三二進制碼,選出位置連續(xù)的第三二進制碼,以第一二進制碼所包括的碼字的數(shù)量為單位(例如包括兩個碼字),從連續(xù)的第三二進制碼中以兩個碼字為單位標記二進制碼串,其中相鄰的二進制碼串具有一個相交的碼字。參照上述例子,例如第一二進制碼為“000 001”,第三二進制碼“001 000 001”的位置“1、2、3”連續(xù),此時修改裝置將該第三二進制碼記為兩個二進制碼串,即一個為“001 000”、另一個為“000 001”,其中碼字“000”為兩個二進制碼串相交的碼字。修改裝置判斷每個二進制碼串中的碼字的排列順序是否與第一二進制碼中的碼字的排列順序是否相同,若相同,則確定該二進制碼串為第一二進制碼。參照上述例子,修改裝置將第一個二進制碼串“001 000”中碼字排列順序與第一二進制碼中的碼字的順序進行比較,確定該第一個二進制碼串“001 000”中的碼字的排列順序與第一二進制碼“000001”中的碼字的排列順序不相同,即該第一個二進制碼串不是第一二進制碼。同理,修改裝置將第二個二進制碼串“000 001”中碼字排列順序與第一二進制碼中的碼字的順序進行比較,確定該第二個二進制碼串“000 001”中的碼字的排列順序與第一二進制碼“000 001”中的碼字的排列順序相同,即該第二個二進制碼串為第一二進制碼。即本實施例的修改裝置根據(jù)上述的步驟可以準確快速地獲得二進制碼流中的所有第一二進制碼,進而使得修改裝置準確快速地實現(xiàn)對壓縮文件的修改。
本發(fā)明提供的壓縮文件的修改方法,當待修改字符中包括多個第一字符時,修改裝置通過逐一判斷二進制碼流中的每個字符對應(yīng)的二進制碼是否屬于第一二進制碼,當屬于時,獲得屬于第一二進制碼的第三二進制碼在二進制碼流中的位置,判斷第三二進制碼的位置是否連續(xù),若連續(xù)時,將位置連續(xù)的第三二進制碼作為一個二進制碼串,判斷該二進制碼串的碼字順序是否與第一二進制的碼字順序相同,若相同,即可確定該二進制碼串為第一二進制碼,進而快速準確地獲得壓縮文件的二進制碼流中的第一二進制碼。
圖4為本發(fā)明提供的壓縮文件的修改方法實施例四的流程示意圖,在上述實施例的基礎(chǔ)上,本實施例涉及的當待修改字符包括第二字符和第三字符,所述第一二進制碼包括第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼,且所述第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼按照所述待修改字符的字符順序排列時,修改裝置獲取二進制碼流中的所述第一二進制碼的具體過程。即當待修改字符包括兩個字符時,上述S201可以采用上述S301-S305的步驟外,還可以采用以下S401-S404的步驟,具體的:
S401、逐一查詢所述二進制碼流中是否存在與所述第二字符的二進制碼匹配的二進制碼。
具體的,當修改字符包括第二字符和第三字符時,第一二進制包括第一字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼,并且第一二進制碼中第二字符的二進制碼和第三二進制碼按照順序排列,例如修改字符為“北京”,即第二字符為“北”,第三字符為“京”,參照上述例子,第二字符“北”的二進制碼為“000”,第三字符“京”的二進制碼為“001”,即第一二進制碼為“000 001”。
修改裝置逐一查詢壓縮文件的二進制碼流中是否存在與第二字符“北”的二進制碼“000”匹配的二進制碼。
S402、當所述二進制碼流中第i個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i個字符的二進制碼。
具體的,根據(jù)上述S401的方法,查詢二進制碼流中的第i個字符的二進制“000”與上述第二字符“北”的二進制碼“000”匹配,則修改裝置保存該第i個字符的二進制碼“000”。
S403、判斷所述二進制碼流中第i+1個字符的二進制碼是否與所述第三字符的二進制碼匹配。
具體的,修改裝置確定二進制碼流中的第i個字符的二進制碼與第二字符的二進制碼相同后,判斷二進制碼流中的第i+1個字符的二進制碼是否與第三字符“京”的二進制碼為“001”相同。
S404、當所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+1個字符的二進制碼,并將所述第i個字符的二進制碼和所述第i+1個字符的二進制碼確定為所述第一二進制碼。
具體的,假設(shè)二進制碼流中的第i+1個字符的二進制碼為“001”時,修改裝置判斷該第i+1個字符的二進制碼“001”與第三字符“京”的二進制碼“001”匹配,則將該第i+1個字符的二進制碼“001”進行保存,此時,修改裝置將壓縮文件的二進制碼流中的第i個字符的二進制碼和第i+1個字符的二進制碼確定為第一二進制碼“000 001”。即本實施例的方法,通過上述步驟即可快速準確地從二進制碼流中獲取第一二進制碼。
為了進一步說明本實施例的方法,在此舉例說明:
參照上述例子,假設(shè)修改字符為“北京”,第二字符“北”的二進制碼為“000”,第三字符“京”的二進制碼為“001”,即第一二進制碼為“000 001”,壓縮文件的二進制碼流為“…000 001 100 000 001…”。修改裝置從二進制碼流中逐一查詢與第二字符“北”的二進制碼為“000”匹配的二進制碼。經(jīng)查詢,二進制碼流中的第i個字符對應(yīng)的二進制碼“000”與第二字符“北”的二進制碼為“000”相同,修改裝置保存該第i個字符對應(yīng)的二進制碼“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”。接著,修改裝置根據(jù)上述方法判斷二進制碼流中的第i+3個字符的二進制碼“000”與第二字符的二進制碼“000”相同,修改裝置保存該第i+3個字符的二進制碼,同時保存該第i+3個字符的二進制碼在二進制碼流中的位置。修改裝置判斷二進制碼流中的第i+4個字符的二進制碼“001”與第三字符的二進制碼“001”相同,修改裝置保存該第i+4個字符的二進制碼,同時保存該第i+4個字符的二進制碼在二進制碼流中的位置,將二進制碼流中的第i+3個字符和第i+4個字符確定為第一二進制碼。參照上述步驟,修改裝置即可獲取二進制碼流中的所有的第一二進制碼。
需要說明的是,本實施例的方法是以待修改字符包絡(luò)兩個字符為例進行闡述的,當待修改字符包括多個字符時,依然可以根據(jù)上述方法獲得,其具體過程與上述待修改字符中包括兩個字符的情況相同,在此不再贅述。
本發(fā)明提供的壓縮文件的修改方法,待修改字符包括第二字符和第三字符,修改裝置在二進制碼流中首先逐一查詢與第一字符的二進制碼匹配的二進制碼,當二進制碼流中第i個字符的二進制碼與第二字符的二進制碼匹配時,才判斷二進制碼流中第i+1個字符的二進制碼是否與第三字符的二進制碼匹配,若匹配則將二進制碼流中的第i個字符的二進制碼和第i+1個字符的二進制碼記為第一二進制碼,進而實現(xiàn)準確快速地獲得二進制碼流中的第一二進制碼。
圖5為本發(fā)明提供的壓縮文件的修改方法實施例五的流程示意圖,在上述實施例的基礎(chǔ)上,本實施涉及的是當修改裝置判斷二進制碼流中第i+1個字符的二進制碼與述第三字符的二進制碼不匹配時,獲取所述二進制碼流中的所述第一二進制碼的具體過程,如圖5所示,本實施例的方法具體可以包括:
S501、逐一查詢所述二進制碼流中是否存在與所述第二字符的二進制碼匹配的二進制碼。
S502、當所述二進制碼流中第i個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i個字符的二進制碼。
S503、判斷所述二進制碼流中第i+1個字符的二進制碼是否與所述第三字符的二進制碼匹配;
上述S501-S503與上述S401-S403相同,具體過程參照上述實施例的描述,在此不再贅述。
S504、當判斷所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼不匹配時,判斷所述二進制碼流中第i+2個字符的二進制碼是否與所述第二字符的二進制碼匹配。
具體的,根據(jù)上述步驟,修改裝置判斷壓縮文件的二進制碼流中的第i個字符的二進制碼與第二字符的二進制碼相同,但是二進制碼流中的第i+1個字符的二進制碼與第三字符的二進制碼不相同,則修改裝置需要重新判斷二進制碼流中的第i+2個字符的二進制碼是否與第二字符的二進制碼匹配。
S505、當所述二進制碼流中第i+2個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i+2個字符的二進制碼。
具體的,根據(jù)上述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個字符的二進制碼確定為第一二進制碼。參照上述步驟即可獲得壓縮文件中的所有第一二進制碼。
需要說明的是,本實施例的方法是以待修改字符包絡(luò)兩個字符為例進行闡述的,當待修改字符包括多個字符時,依然可以根據(jù)上述方法獲得,其具體過程與上述待修改字符中包括兩個字符的情況相同,在此不再贅述。
本發(fā)明提供的壓縮文件的修改方法,當修改裝置判斷二進制碼流中第i+1個字符的二進制碼與第三字符的二進制碼不匹配時,修改裝置判斷二進制碼流中第i+2個字符的二進制碼是否與第二字符的二進制碼匹配,若匹配時,判斷二進制碼流中第i+3個字符的二進制碼是否與第三字符的二進制碼匹配,若匹配時,將第i+2個字符的二進制碼和第i+3個字符的二進制碼確定為第一二進制碼,進而實現(xiàn)準確快速地獲得二進制碼流中的第一二進制碼。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
圖6為本發(fā)明提供的壓縮文件的修改裝置實施例一的示意圖。該修改裝置可以通過軟件、硬件或者軟硬結(jié)合的方式實現(xiàn),該修改裝置可以集成在服務(wù)器中,也可以為單獨的服務(wù)器。如圖6所示,本實施例的修改裝置可以包括:接收模塊10、解析模塊20、獲取模塊30和替換模塊40。
接收模塊10,用于接收用戶輸入的修改指令,所述修改指令包括待修改字符和修改字符,所述修改指令用于將所述壓縮文件中的待修改字符串更新為所述修改字符串。
解析模塊20,用于解析所述壓縮文件,獲得所述壓縮文件的碼表和所述壓縮文件的二進制碼流;其中,所述碼表包括所述壓縮文件中的不同字符對應(yīng)的二進制碼,所述二進制碼流包括按照所述壓縮文件中字符順序排列的二進制碼。
獲取模塊30,用于根據(jù)所述碼表,獲得所述待修改字符的第一二進制碼和所述修改字符的第二二進制碼。
替換模塊40,用于將所述二進制碼流中的所述第一二進制碼替換為所述第二二進制碼。
本發(fā)明提供的壓縮文件的修改裝置,可以用于執(zhí)行上述所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖7為本發(fā)明提供的壓縮文件的修改裝置實施例二的示意圖。在上述實施例的基礎(chǔ)上,如圖7所示,本實施例的替換模塊40可以包括獲取單元401和替換單元402。
獲取單元401,用于獲取所述二進制碼流中的所述第一二進制碼。
替換單元402,用于將所述第一二進制碼替換為所述第二二進制碼。
在本實施例的第一種可能的實現(xiàn)方式中,當待修改字符包括多個第一字符,所述第一二進制碼包括每個第一字符對應(yīng)的二進制碼時,則
上述獲取單元401,具體用于逐一判斷所述二進制碼流中每個字符對應(yīng)的二進制碼是否屬于所述第一二進制碼;若是,則按照判斷順序依次獲取所述二進制碼流中屬于所述第一二進制碼的第三二進制碼的位置;并判斷所獲取的第三二進制碼的位置是否連續(xù);若所獲取的第三二進制碼的位置連續(xù),則將所述位置連續(xù)的第三二進制碼作為一二進制碼串,并判斷二進制碼串的碼字順序是否與所述第一二進制碼的碼字順序相同;若相同,則確定所述二進制碼串為所述第一二進制碼。
在本實施例的第二種可能的實現(xiàn)方式中,當上述待修改字符包括第二字符和第三字符,所述第一二進制碼包括第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼,且所述第二字符對應(yīng)的二進制碼和第三字符對應(yīng)的二進制碼按照所述待修改字符的字符順序排列時,則
上述獲取單元401,具體用于逐一查詢所述二進制碼流中是否存在與所述第二字符的二進制碼匹配的二進制碼;當所述二進制碼流中第i個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i個字符的二進制碼;判斷所述二進制碼流中第i+1個字符的二進制碼是否與所述第三字符的二進制碼匹配;當所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+1個字符的二進制碼,并將所述第i個字符的二進制碼和所述第i+1個字符的二進制碼確定為所述第一二進制碼。
在本實施例的第三種可能的實現(xiàn)方式中,當所述獲取單元401判斷所述二進制碼流中第i+1個字符的二進制碼與所述第三字符的二進制碼不匹配時,則
上述獲取單元401,還具體用于判斷所述二進制碼流中第i+2個字符的二進制碼是否與所述第二字符的二進制碼匹配;當所述二進制碼流中第i+2個字符的二進制碼與所述第二字符的二進制碼匹配時,保存所述第i+2個字符的二進制碼;判斷所述二進制碼流中第i+3個字符的二進制碼是否與所述第三字符的二進制碼匹配;當所述二進制碼流中第i+3個字符的二進制碼與所述第三字符的二進制碼匹配時,保存所述第i+3個字符的二進制碼,并將所述第i+2個字符的二進制碼和所述第i+3個字符的二進制碼確定為所述第一二進制碼。
本發(fā)明提供的壓縮文件的修改裝置,可以用于執(zhí)行上述所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。