[發明專利]一種基于內容差異比較的文檔共享方法有效
| 申請號: | 201010131214.4 | 申請日: | 2010-03-22 |
| 公開(公告)號: | CN101807207A | 公開(公告)日: | 2010-08-18 |
| 發明(設計)人: | 李曉耕 | 申請(專利權)人: | 北京大用科技有限責任公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京永創新實專利事務所 11121 | 代理人: | 周長琪 |
| 地址: | 100191 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 內容 差異 比較 文檔 共享 方法 | ||
1.一種基于內容差異比較的文檔共享方法,其特征在于,該方法同時包括操作終端和文檔瀏覽終端兩部分內容,具體如下,
對于操作終端,步驟有:
步驟一:共享文檔初始化;
對需要共享的文檔首先進行初始化操作,包括打開文檔、保存文檔、通過文件傳輸協議將該初始文檔傳輸到瀏覽終端進行共享;
首先將一份完整的初始文檔通過網絡分發到各瀏覽終端進行初始化,以該初始化文檔的內容作為更新的基點;初始化操作還包括保存文檔內容,以二進制的格式將文檔內容保存到內存文件中;
其中所述的內存文件是計算機在內存中開辟的一段存儲空間,存儲空間隨著文檔尺寸的增大而遞增;
步驟二:等待文檔內容的更改;
等待用戶對文檔的編輯操作,對共享的文檔內容做各種編輯操作包括:增加文字、刪除文字、修改格式、插入圖片和圖形;當文檔的修改達到一定的量級觸發保存操作,對更改后的文檔進行步驟一中所述的保存文檔,以二進制格式將修改后的文檔保存到一個新的內存文件,為步驟三做準備;
步驟三:將更改后的文檔與更改前的內容進行差異比較;
將更改前的內存文件和更改后的內存文件進行拆分,按照指定的關鍵詞將內存文件拆分成塊,記錄每個文件塊的尺寸、所在文檔中的起始位置和結束位置,然后對每一個文件塊進行差異比較,從而得到文檔變化的內容;采用自定義的數據結構對變化的內容進行精確的記錄;
文檔拆分時首先選用文檔拆分關鍵詞,采用二進制方式打開文檔所對應的內存文件,將文件讀取指針指向文件頭部,從文件頭按位查找關鍵詞,根據關鍵詞將文件內容分割成多行字符串形式,將所得的行信息按照先后順序保存到列表中;列表中的每個元素表示一行對象,行對象定義為:
Li(I,Hi,Pi,Vi)
其中,i取大于或等于1的正整數,i表示行號;Li表示第i行;Hi表示第i行的哈希值;Pi表示第i行在文檔中的位置信息;Vi表示第i行的實際字符串值;
第i行在文檔中的位置信息表示為:
Pi(開始位置,結束位置)
其中,開始位置和結束位置的取值范圍是大于或等于零的整數,開始位置是該行的第一個字符在文檔中的位置表示,結束位置是該行的最后一個字符在文檔中的位置表示;
第i行的哈希值獲取方法為:
Hn=Cn+2×H(n-1)
其中,n表示當前字符的位置,Cn表示當前所取得的該行中第n位字符的整數值,H(n-1)表示該行中前(n-1)位字符的哈希值,當n取值為第i行的總長度時所得到Hn值就是該行的哈希值;
在獲得更改前和更改后的文檔拆分列表和文件塊的哈希值之后,按行采用哈希值比較方法進行差異比較;只有在兩行的哈希值相等的情況下,才比較兩行的字符串值;當兩行的哈希值和字符串值都相同的時候,兩行的內容才是完全相同的;當兩行的哈希值不相等時,說明兩行的內容存在差異,不用再比較字符串值;
文檔內容差異比較方法就是對更改前和更改后的文檔拆分列表中的每個行對象都做差異比較,在差異比較過程中所輸出的結果就是兩份文檔的內容差異比較結果;在比較過程完成后,比較的結果按順序都保存到結果列表中,結果列表中的每個元素都是一個行結構對象,該行結構定義中包括行的字符串值、行在文檔中的位置信息、行的操作類型;其中操作類型有四種情況,分別是:行增加、行刪除、行更改、行相同;遍歷這個結果列表能夠得到從舊文檔到新文檔所做的內容變化;
步驟四:將差異比較的結果進行壓縮并共享;
在步驟三中,文檔的差異比較結果存放在一個列表中;首先,按順序遍歷列表中的每個元素,將列表序列化并將結果存放在內存空間中;接著采用無損壓縮方法對內存中的差異比較結果列表序列化的結果進行壓縮;最后將壓縮后的數據通過網絡傳輸到瀏覽終端,如果經過壓縮后的數據尺寸超過了每次發送報文的尺寸,則對大的數據包進行拆分后發送;瀏覽終端接到數據后進行相反地操作,實現文檔內容的共享;
對于文檔瀏覽終端,繼續實施以下步驟:
步驟五:接收來自操作終端的更新包;
瀏覽終端監聽網絡接收端口,當有新的數據到達時,觸發接收線程對網絡數據進行接收,并對接收到的數據類型進行判斷:如果是內容更新包數據,就對數據包的完整性做檢驗,為正確解壓更新包做準備;如果不是內容更新包數據,就將接收到的數據交給消息處理線程作相應的處理;
步驟六:解壓更新包并與當前文檔進行合并;
首先對接收到的壓縮更新包進行解壓操作,解壓接收到的壓縮更新包就是對接收到的壓縮更新包進行解壓操作;接著對解壓后的數據進行分析,解壓后的數據只是一段二進制的流數據,對解壓后的數據進行反序列化操作將其還原成結構化數據;然后重構差異比較結果列表,列表中的每個對象存儲的信息包括操作類型、改動內容在文檔中的位置信息;最后遍歷列表中的行對象,根據行對象的操作類型和位置信息與當前文檔內容進行合并,合并更新操作都是在內存文件中操作,根據合并完成后的內容做界面刷新就能夠觀看到最新的文檔內容了。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大用科技有限責任公司,未經北京大用科技有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010131214.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:建立差分走線測試條的方法
- 下一篇:查找信息的方法和裝置
- 內容再現系統、內容提供方法、內容再現裝置、內容提供裝置、內容再現程序和內容提供程序
- 內容記錄系統、內容記錄方法、內容記錄設備和內容接收設備
- 內容服務系統、內容服務器、內容終端及內容服務方法
- 內容分發系統、內容分發裝置、內容再生終端及內容分發方法
- 內容發布、內容獲取的方法、內容發布裝置及內容傳播系統
- 內容提供裝置、內容提供方法、內容再現裝置、內容再現方法
- 內容傳輸設備、內容傳輸方法、內容再現設備、內容再現方法、程序及內容分發系統
- 內容發送設備、內容發送方法、內容再現設備、內容再現方法、程序及內容分發系統
- 內容再現裝置、內容再現方法、內容再現程序及內容提供系統
- 內容記錄裝置、內容編輯裝置、內容再生裝置、內容記錄方法、內容編輯方法、以及內容再生方法





