欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多版本數(shù)字圖書的差異化存儲(chǔ)方法及差異文件的讀取方法

文檔序號(hào):6443384閱讀:128來(lái)源:國(guó)知局
專利名稱:多版本數(shù)字圖書的差異化存儲(chǔ)方法及差異文件的讀取方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)的存儲(chǔ)方法,特別涉及一種多版本數(shù)字圖書的差異化存儲(chǔ)方法及差異文件的讀取方法。
背景技術(shù)
目前,隨著網(wǎng)絡(luò)技術(shù)發(fā)展和電子書的迅速普及,已經(jīng)進(jìn)入了數(shù)字圖書時(shí)代。數(shù)字圖書時(shí)代要解決的其中一個(gè)難題就是對(duì)于海量數(shù)字圖書的存儲(chǔ)?,F(xiàn)有技術(shù)中對(duì)于一本圖書的多個(gè)版本,由于使用渠道的不同,都采用分別單獨(dú)存儲(chǔ)的方式進(jìn)行存儲(chǔ)。這種數(shù)字圖書的存儲(chǔ)方法,由于一本圖書的不同版本存在的差異通常不是很大,使得對(duì)不同版本分別單獨(dú)存儲(chǔ)的方式,造成了對(duì)存儲(chǔ)空間的浪費(fèi),同時(shí)也增加了檢索的數(shù)據(jù)量,對(duì)檢索造成了不必要的困難。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種多版本數(shù)字圖書的差異化存儲(chǔ)方法及差異文件的讀取方法,以提高存儲(chǔ)空間的使用效率。本發(fā)明提供的這種多版本數(shù)字圖書的差異化存儲(chǔ)方法,包括:將原始數(shù)字圖書存儲(chǔ)在磁盤上的一段連續(xù)空間內(nèi),作為原始文件;將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件,每個(gè)差異文件包含:原始文件的起始地址和結(jié)束地址、各個(gè)差異部分的數(shù)據(jù)、各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址。較佳地,將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件包括:21)、以固定長(zhǎng)度分別讀取原始文件和一不同版本的數(shù)字圖書進(jìn)行比較,獲取各個(gè)差異部分在原始文件中的起始地址和結(jié)束地址。22)、建立該版本的差異文件,讀取該版本的數(shù)字圖書的各個(gè)差異部分?jǐn)?shù)據(jù),將原始文件的起始地址和結(jié)束地址、各個(gè)差異部分的數(shù)據(jù)、各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址寫入到該版本的差異文件中。較佳地,所述固定長(zhǎng)度為一個(gè)扇區(qū)的長(zhǎng)度。較佳地,所述步驟21)中,利用訪問(wèn)磁盤文件的INT 13H中斷獲取各個(gè)差異部分在原始文件中的起始物理地址,根據(jù)起始物理地址和數(shù)據(jù)長(zhǎng)度計(jì)算出各個(gè)差異部分在原始文件中的結(jié)束物理地址。步驟22)所述起始地址和結(jié)束地址為起始物理地址和結(jié)束物理地址。較佳地,所述起始物理地址和結(jié)束物理地址均包括:起始柱面號(hào)和扇區(qū)號(hào)CX、磁頭號(hào)DH以及驅(qū)動(dòng)器號(hào)DL。較佳地,所述步驟22)后進(jìn)一步包括:計(jì)算出原始文件與該版本的數(shù)字圖書的差異數(shù)量,計(jì)算出該版本的差異文件的數(shù)據(jù)長(zhǎng)度;將計(jì)算出的差異數(shù)量、數(shù)據(jù)長(zhǎng)度以及該版本的版本號(hào)寫入該版本的差異文件中。本發(fā)明還提供了一種所述差異文件的讀取方法,包括:A、根據(jù)差異文件中包含的原始文件的起始地址和結(jié)束地址讀取原始文件;B、當(dāng)讀取到各個(gè)差異部分在原始文件中的起始地址時(shí),根據(jù)差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址,讀取差異文件中存儲(chǔ)的各個(gè)差異部分的數(shù)據(jù)。較佳地,所述步驟A中:以固定長(zhǎng)度讀取原始文件,并獲取當(dāng)前讀取部分的起始地址;所述步驟B中將當(dāng)前讀取部分的起始地址與差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址進(jìn)行比較,確定是否當(dāng)前讀取部分的起始地址是否包含在差異文件中。較佳地,所述固定長(zhǎng)度為一個(gè)扇區(qū)的長(zhǎng)度。較佳地,所述差異文件中的各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址為起始物理地址;所述步驟A中,利用訪問(wèn)磁盤文件的INT 13H中斷獲取當(dāng)前讀取部分的起始物理地址;所述步驟B中,將當(dāng)前讀取部分的起始物理地址與差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始物理地址進(jìn)行比較。由上述的技術(shù)方案可見(jiàn),由于本發(fā)明中對(duì)不同版本的數(shù)字圖書不存儲(chǔ)完整的數(shù)據(jù),僅存儲(chǔ)包含差異部分?jǐn)?shù)據(jù)及差異部分信息的差異文件,因此能夠提高空間使用效率,同時(shí)差異版本文件的存儲(chǔ)可以避免檢索,待檢索文件的總數(shù)減少,提高檢索效率。


圖1為本發(fā)明的差異化存儲(chǔ)方法一較佳實(shí)施例中原始文件的存儲(chǔ)結(jié)構(gòu)示例圖;圖2為圖1所示實(shí)施例中差異文件的存儲(chǔ)結(jié)構(gòu)示例圖;圖3為圖1所示實(shí)施例中存儲(chǔ)差異文件的流程示意圖;圖4為圖3所示實(shí)施例中差異文件的文件格式;圖5為讀取圖1所示實(shí)施例中差異文件的流程示意圖。
具體實(shí)施例方式以下參照附圖并舉具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本發(fā)明提供的多版本數(shù)字圖書的差異化存儲(chǔ)方法,將原始數(shù)字圖書存儲(chǔ)在磁盤上的一段連續(xù)空間內(nèi),作為原始文件,并將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件。其中,每個(gè)差異文件包含:原始文件的起始地址和結(jié)束地址、各個(gè)差異部分的數(shù)據(jù)、各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址。本發(fā)明還提供了對(duì)所述差異文件的讀取方法,首先根據(jù)差異文件中包含的原始文件的起始地址和結(jié)束地址讀取原始文件。然后,當(dāng)讀取到各個(gè)差異部分在原始文件中的起始地址時(shí),根據(jù)差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址,讀取差異文件中存儲(chǔ)的各個(gè)差異部分的數(shù)據(jù)。以下舉一個(gè)較佳實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例中,首先將原始數(shù)字圖書存儲(chǔ)在磁盤上的一段連續(xù)空間內(nèi),該原始文件的存儲(chǔ)結(jié)構(gòu)的示例如圖1所示:該原始文件存儲(chǔ)在了從三扇區(qū)二磁道第五柱面到四三區(qū)三磁道第十柱面的一段連續(xù)空間內(nèi)。然后將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件。該差異文件的存儲(chǔ)結(jié)構(gòu)的示例如圖2所示:按順序存儲(chǔ)了原始文件起始地址、原始文件結(jié)束地址、差異部分一起始地址、差異部分?jǐn)?shù)據(jù)、差異部分一結(jié)束地址、差異部分二起始地址等等,一直到最后一個(gè)差異部分結(jié)束地址。
本實(shí)施例中將原始數(shù)字圖書存儲(chǔ)在磁盤上的一段連續(xù)空間內(nèi)可以采用現(xiàn)有技術(shù)的普通存儲(chǔ)過(guò)程實(shí)現(xiàn),這里不再贅述,以下對(duì)本實(shí)施例中差異文件的存儲(chǔ)過(guò)程進(jìn)行詳細(xì)描述。如圖3所示,本實(shí)施例中差異文件的存儲(chǔ)過(guò)程包括如下步驟:步驟301和302:分別讀取原始文件和一個(gè)不同版本數(shù)字圖書的一個(gè)扇區(qū)的數(shù)據(jù),也就是讀取512個(gè)字節(jié)數(shù)據(jù)。步驟303和304:分別調(diào)用操作系統(tǒng)對(duì)磁盤文件數(shù)據(jù)訪問(wèn)的INT 13H中斷。步驟305、獲取原始文件當(dāng)前數(shù)據(jù)的物理地址。由于操作系統(tǒng)對(duì)磁盤文件數(shù)據(jù)的訪問(wèn)最終都會(huì)轉(zhuǎn)換為INT 13H中斷調(diào)用來(lái)實(shí)現(xiàn),INT13H的入口參數(shù)恰好包含了被訪問(wèn)內(nèi)容所在扇區(qū)的地址標(biāo)示,并且以扇區(qū)的物理地址(CHS)的形式給出。INT 13H中斷讀/寫磁盤功能的入?yún)?AH = 2H/3H ;AL =要讀/寫的扇區(qū)數(shù);CX=起始柱面號(hào)和扇區(qū)號(hào);DH=磁頭號(hào);DL的驅(qū)動(dòng)器號(hào);ES:BX=數(shù)據(jù)緩沖區(qū)的首地址。因此,本發(fā)明在操作系統(tǒng)剛調(diào)用INT 13H中斷時(shí),在讀操作時(shí),獲取INT 13H中斷調(diào)用的入口參數(shù),從而截取了 CHS信息。這樣,就獲取到該512字節(jié)的存儲(chǔ)磁盤地址CX、DH和DL,然后恢復(fù)原INT 13H中斷執(zhí)行。步驟306,將從原始文件讀取的數(shù)據(jù)與從該不同版本數(shù)字圖書讀取的數(shù)據(jù)進(jìn)行比較。步驟307,判斷這兩部分?jǐn)?shù)據(jù)是否相同,如果相同,則將地址轉(zhuǎn)移到原始文件和該不同版本數(shù)字圖書的下一個(gè)扇區(qū)后,返回步驟301和302 ;否則執(zhí)行步驟308。本步驟中,可以采用現(xiàn)有常用的數(shù)據(jù)比較的軟件來(lái)實(shí)現(xiàn),這里不再贅述。步驟308、將從該不同版本數(shù)字圖書讀取的數(shù)據(jù)作為差異部分?jǐn)?shù)據(jù)寫入到差異文件中,并將步驟305獲得的原始文件當(dāng)前數(shù)據(jù)的物理地址,作為差異部分在原始文件中的地址也寫入到差異文件中。本步驟中存儲(chǔ)的差異部分在原始文件中的地址包括起始地址和結(jié)束地址;起始地址是在步驟305中直接獲取的,結(jié)束地址可以在步驟305中計(jì)算出來(lái),也可以在本步驟中計(jì)算出來(lái)。結(jié)束地址是根據(jù)差異部分的起始地址、編號(hào)、和每個(gè)差異部分的數(shù)據(jù)長(zhǎng)度(實(shí)際為512字節(jié))計(jì)算出來(lái)的。步驟309、判斷是否讀完原始文件,如果是,則執(zhí)行步驟310 ;否則,將地址轉(zhuǎn)移到原始文件和該不同版本數(shù)字圖書的下一個(gè)扇區(qū)后,返回步驟301和302。一般情況下,讀完了原始文件其不同版本的數(shù)字圖書也讀完了。如果考慮到不同版本的數(shù)字圖書可能數(shù)據(jù)長(zhǎng)度與原始文件不同,則可以進(jìn)一步判斷不同版本的數(shù)字圖書是否也讀完了。如果不同版本的數(shù)字圖書沒(méi)有讀完,則剩余部分都屬于差異部分,按上述方式順序存儲(chǔ)到差異文件中。步驟310、計(jì)算差異部分?jǐn)?shù)量、獲取原始文件的起始地址和結(jié)束地址、計(jì)算本差異文件的數(shù)據(jù)長(zhǎng)度、給出版本號(hào)分別寫入差異文件。本實(shí)施例中,差異文件可以預(yù)先建立一個(gè)空白文件,也可以在原始文件與不同版本數(shù)字圖書比較出差異部分?jǐn)?shù)據(jù)后再建立。按圖3所示流程建立的差異文件的文件結(jié)構(gòu)如圖4所示。包括:定長(zhǎng)文件頭和文件內(nèi)容兩部分。其中,在定長(zhǎng)文件頭中包含了:差異文件的文件長(zhǎng)度(總的數(shù)據(jù)長(zhǎng)度)、版本號(hào)、差異部分?jǐn)?shù)量、原始文件的起始地址和原始文件的結(jié)束地址。文件內(nèi)容中包含了:文件內(nèi)容的數(shù)據(jù)長(zhǎng)度、差異部分編號(hào)、各個(gè)差異部分的起始地址和結(jié)束地址以及各個(gè)差異部分的數(shù)據(jù)。其中,差異部分編號(hào)是按順序生成的。本實(shí)施例中還包括了對(duì)上述差異文件進(jìn)行讀取的方法。如圖5所示,本實(shí)施例中對(duì)上述差異文件進(jìn)行讀取的過(guò)程包括如下步驟:步驟501、根據(jù)差異文件中的原始文件的起始地址和結(jié)束地址,獲取原始文件。本步驟中獲取原始文件,實(shí)際就是將地址轉(zhuǎn)移的原始文件的起始地址。步驟502、讀取原始文件的一個(gè)扇區(qū)(512個(gè)字節(jié))的數(shù)據(jù)。步驟503、調(diào)用INT 13H中斷。步驟504、判斷是否讀磁盤,如果是,則執(zhí)行步驟506 ;否則執(zhí)行步驟505。步驟505、恢復(fù)INT 13H中斷調(diào)用后,將地址轉(zhuǎn)移到原始文件的下一個(gè)扇區(qū),返回步驟502。步驟506、獲取當(dāng)前數(shù)據(jù)的物理地址,包括起始地址和結(jié)束地址。本步驟中,與圖3中步驟305完全相同,這里不再重復(fù)。步驟507、判斷當(dāng)前數(shù)據(jù)的起始地址是否為差異部分在原始文件中的起始地址,如果是,則執(zhí)行步驟508 ;否則執(zhí)行步驟505。本步驟中,就是將獲得的當(dāng)前數(shù)據(jù)的起始地址與差異文件中存儲(chǔ)的各個(gè)差異部分在原始文件的起始地址相比,如果有相同的,即為差異部分在原始文件中的起始地址。步驟508、將物理地址轉(zhuǎn)移到差異文件中對(duì)應(yīng)的差異部分?jǐn)?shù)據(jù)。即起始地址轉(zhuǎn)移到該差異部分?jǐn)?shù)據(jù)。步驟509、讀取差異部分?jǐn)?shù)據(jù)。步驟510、判斷是否讀完原始文件,如果是,則結(jié)束;否則執(zhí)行步驟511。一般情況下,讀完了原始文件其不同版本的數(shù)字圖書也讀完了。如果考慮到不同版本的數(shù)字圖書可能數(shù)據(jù)長(zhǎng)度與原始文件不同,則可以進(jìn)一步判斷不同版本的數(shù)字圖書是否也讀完了。如果不同版本的數(shù)字圖書沒(méi)有讀完,則剩余部分都屬于差異部分,按順序讀取即可。步驟511、將物理地址轉(zhuǎn)移到原始文件的下一個(gè)扇區(qū),返回步驟502。由上述的實(shí)施例可見(jiàn),應(yīng)用本發(fā)明的多版本數(shù)字圖書的差異化存儲(chǔ)方法及對(duì)差異文件的讀取方法,能夠提高空間使用效率,同時(shí)差異版本文件的存儲(chǔ)可以避免檢索,待檢索文件的總數(shù)減少,提高檢索效率。
權(quán)利要求
1.一種多版本數(shù)字圖書的差異化存儲(chǔ)方法,其特征在于:將原始數(shù)字圖書存儲(chǔ)在磁盤上的一段連續(xù)空間內(nèi),作為原始文件;將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件,每個(gè)差異文件包含:原始文件的起始地址和結(jié)束地址、各個(gè)差異部分的數(shù)據(jù)、各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址。
2.如權(quán)利要求1所述的差異化存儲(chǔ)方法,其特征在于,將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件包括: 21)、以固定長(zhǎng)度分別讀取原始文件和一不同版本的數(shù)字圖書進(jìn)行比較,獲取各個(gè)差異部分在原始文件中的起始地址和結(jié)束地址; 22)、建立該版本的差異文件,讀取該版本的數(shù)字圖書的各個(gè)差異部分?jǐn)?shù)據(jù),將原始文件的起始地址和結(jié)束地址、各個(gè)差異部分的數(shù)據(jù)、各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址寫入到該版本的差異文件中。
3.如權(quán)利要求2所述的差異化存儲(chǔ)方法,其特征在于:所述固定長(zhǎng)度為一個(gè)扇區(qū)的長(zhǎng)度。
4.如權(quán)利要求3所述的差異化存儲(chǔ)方法,其特征在于:所述步驟21)中,利用訪問(wèn)磁盤文件的INT 13H中斷獲取各個(gè)差異部分在原始文件中的起始物理地址,根據(jù)起始物理地址和數(shù)據(jù)長(zhǎng)度計(jì)算出各個(gè)差異部分在原始文件中的結(jié)束物理地址; 步驟22)所述起始地址和結(jié)束地址為起始物理地址和結(jié)束物理地址。
5.如權(quán)利要求4所述的差異化存儲(chǔ)方法,其特征在于,所述起始物理地址和結(jié)束物理地址均包括:起始柱面號(hào)和扇區(qū)號(hào)CX、磁頭號(hào)DH以及驅(qū)動(dòng)器號(hào)DL。
6.如權(quán)利要求2-5任一項(xiàng)所述的差異化存儲(chǔ)方法,其特征在于,所述步驟22)后進(jìn)一步包括:計(jì)算出原始文件與該版本的數(shù)字圖書的差異數(shù)量,計(jì)算出該版本的差異文件的數(shù)據(jù)長(zhǎng)度;將計(jì)算出的差異數(shù)量、數(shù)據(jù)長(zhǎng)度以及該版本的版本號(hào)寫入該版本的差異文件中。
7.—種權(quán)利要求1所述差異文件的讀取方法,其特征在于,包括: A、根據(jù)差異文件中包含的原始文件的起始地址和結(jié)束地址讀取原始文件; B、當(dāng)讀取到各個(gè)差異部分在原始文件中的起始地址時(shí),根據(jù)差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址,讀取差異文件中存儲(chǔ)的各個(gè)差異部分的數(shù)據(jù)。
8.如權(quán)利要求7所述差異文件的讀取方法,其特征在于,所述步驟A中:以固定長(zhǎng)度讀取原始文件,并獲取當(dāng)前讀取部分的起始地址; 所述步驟B中將當(dāng)前讀取部分的起始地址與差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址進(jìn)行比較,確定是否當(dāng)前讀取部分的起始地址是否包含在差異文件中。
9.如權(quán)利要求8所述差異文件的讀取方法,其特征在于:所述固定長(zhǎng)度為一個(gè)扇區(qū)的長(zhǎng)度。
10.如權(quán)利要求9所述的差異化存儲(chǔ)方法,其特征在于:所述差異文件中的各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址為起始物理地址;所述步驟A中,利用訪問(wèn)磁盤文件的INT13H中斷獲取當(dāng)前讀取部分的起始物理地址; 所述步驟B中,將當(dāng)前讀取部分的起始物理地址與差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始物理地址進(jìn)行比較。
全文摘要
本發(fā)明公開了一種多版本數(shù)字圖書的差異化存儲(chǔ)方法,將原始數(shù)字圖書存儲(chǔ)在磁盤上的一段連續(xù)空間內(nèi),作為原始文件;將與該原始數(shù)字圖書不同的每個(gè)版本的數(shù)字圖書分別存儲(chǔ)為差異文件,每個(gè)差異文件包含原始文件的起始地址和結(jié)束地址、各個(gè)差異部分的數(shù)據(jù)、各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址。本發(fā)明同時(shí)公開了對(duì)所述差異文件的讀取方法,根據(jù)差異文件中包含的原始文件的起始地址和結(jié)束地址讀取原始文件;當(dāng)讀取到各個(gè)差異部分在原始文件中的起始地址時(shí),根據(jù)差異文件中各個(gè)差異部分?jǐn)?shù)據(jù)在原始文件中的起始地址和結(jié)束地址,讀取差異文件中存儲(chǔ)的各個(gè)差異部分的數(shù)據(jù)。應(yīng)用本發(fā)明能夠提高空間使用效率,提高檢索效率。
文檔編號(hào)G06F17/30GK103186530SQ201110443528
公開日2013年7月3日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者羅旭龍 申請(qǐng)人:北京中文在線數(shù)字出版股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
新民市| 岳普湖县| 盘锦市| 大化| 抚宁县| 林州市| 丽江市| 怀安县| 治县。| 荔波县| 阳朔县| 乐山市| 慈溪市| 和政县| 河南省| 上饶县| 梁河县| 平山县| 黄冈市| 屯留县| 泸溪县| 新竹县| 龙南县| 垣曲县| 女性| 手游| 江陵县| 右玉县| 日喀则市| 芒康县| 寿宁县| 阿合奇县| 卢氏县| 平原县| 阿巴嘎旗| 龙陵县| 福州市| 闸北区| 肥东县| 巩义市| 五家渠市|