專利名稱:一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)終端電子書領(lǐng)域,特別涉及一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法。
背景技術(shù):
移動(dòng)終端的電子書通常采用以下兩種方式進(jìn)行編碼=Unicode碼和GB2312碼。對(duì)于Unicode編碼的電子書,所有字符都是采用雙字節(jié)編碼,電子書跳轉(zhuǎn)定位時(shí)只要保證定位初始值與電子書文件起始值之差是偶數(shù),就不會(huì)出現(xiàn)跳轉(zhuǎn)錯(cuò)位的情況。但是對(duì)于GB2312 編碼的電子書,其特點(diǎn)在于,對(duì)于ASCII字符是采用單字節(jié)編碼,對(duì)于漢字是采用雙字節(jié)編碼。因此常常出現(xiàn)的情況是,在得到定位初始值時(shí),不能保證該位置是漢字或ASCII的起始字節(jié)還是漢字的第二個(gè)字節(jié)。傳統(tǒng)方法通常從文件起始位置逐一讀取字符,直到定位初始值附近,再判定是否錯(cuò)位。該方法準(zhǔn)確性高,但當(dāng)跳轉(zhuǎn)處與文件起始位置間隔較多字節(jié)時(shí), 電子書的跳轉(zhuǎn)速度會(huì)大大降低。申請(qǐng)?zhí)枮?00610025966,名稱為“在手機(jī)上顯示電子書的方法和設(shè)備”的專利公布了一種在手機(jī)上顯示電子書的方法,特點(diǎn)是每次僅讀取并顯示固定長度的數(shù)據(jù),將書簽信息記錄在文件的末尾。但是其并未涉及通過計(jì)算讀取的電子書當(dāng)前位置所對(duì)應(yīng)的字符數(shù)與所述定位初始值的差值來進(jìn)行定位跳轉(zhuǎn)的技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法,實(shí)現(xiàn)移動(dòng)終端電子書的快速跳轉(zhuǎn)。本發(fā)明提供一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法,其適用于GB2312編碼電子書, 包括以下步驟
1.1、獲取所述電子書的定位初始值;
1. 2、依照順序讀取下一單字節(jié)并判斷是否讀取到所述電子書文件末尾或讀取到ASCII 字符,若是則轉(zhuǎn)下一步驟,若否則繼續(xù)讀??;
1. 3、計(jì)算讀取的當(dāng)前位置所對(duì)應(yīng)的字符數(shù)與所述定位初始值的差值; 1.4、判斷所述差值是否為偶數(shù),若否則依照預(yù)定規(guī)則調(diào)整所述定位初始值并進(jìn)行定位,若是則結(jié)束操作。所述的步驟1. 1中的定位初始值按以下方式獲取和確定所述電子書按比例指定位置時(shí),所述定位初始值為待閱讀的起始字節(jié)占該電子書總字節(jié)的比例;所述電子書按頁數(shù)指定位置時(shí),所述定位初始值為在每頁字節(jié)大小一定的情況下指定待閱讀的頁數(shù);所述電子書按直接指定字節(jié)指定位置時(shí),所述定位初始值為指定待閱讀位置的字節(jié)。所述的步驟1. 2包括下列子步驟 3.1、讀取下一個(gè)單字節(jié);
3. 2、判斷是否讀取到所述電子書文件的末尾,若是則轉(zhuǎn)所述步驟1.3,若否則轉(zhuǎn)步驟3. 3 ;
3. 3、判斷該單字節(jié)是否為ASCII字符,若是則轉(zhuǎn)所述步驟1. 3,若否則繼續(xù)往下讀取。所述步驟3. 2按照以下方法判斷是否讀取到所述電子書文件的末尾當(dāng)前單字節(jié)位置減去電子書文件初始位置等于電子書文件大小時(shí),則判斷為讀取到所述電子書文件的末尾。所述步驟3. 3按照以下方法判斷所述單字節(jié)是否為ASCII字符該單字節(jié)范圍大于等于0x00并且小于等于0X7f時(shí),則判斷為讀取到ASCII字符。所述步驟1. 2采用循環(huán)算法依照順序讀取下一單字節(jié),直至讀取到所述電子書文件末尾或讀取到所述ASCII字符。所述步驟1. 4中若所述差值為偶數(shù),則所述定位初始值不作調(diào)整并結(jié)束操作;若所述差值為奇數(shù),則將所述定位初始值減去1作為最終定位初始值并進(jìn)行定位。采用本發(fā)明所述的一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法,首先計(jì)算讀取的電子書當(dāng)前位置所對(duì)應(yīng)的字符數(shù)與所述定位初始值的差值,并判斷所述差值的奇偶性,再按預(yù)定規(guī)則對(duì)所述定位初始值進(jìn)行調(diào)整并進(jìn)行定位。本發(fā)明可以有效實(shí)現(xiàn)GB2312編碼電子書的準(zhǔn)確定位,防范錯(cuò)位亂碼的出現(xiàn),并提高定位效率。
圖1是本發(fā)明所述方法的主流程圖; 圖2是本發(fā)明一實(shí)施例的詳細(xì)流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例進(jìn)一步說明本發(fā)明的技術(shù)方案。參見圖1,圖1顯示了本發(fā)明的主要流程圖100,包括 101、獲取所述電子書的定位初始值。所述定位初始值按以下方式獲取和確定所述電子書按比例指定位置時(shí),所述定位初始值為待閱讀的起始字節(jié)占該電子書總字節(jié)的比例;所述電子書按頁數(shù)指定位置時(shí), 所述定位初始值為在每頁字節(jié)大小一定的情況下指定待閱讀的頁數(shù);所述電子書按直接指定字節(jié)指定位置時(shí),所述定位初始值為指定待閱讀位置的字節(jié)。102、讀取下一單字節(jié)并判斷是否為電子書文件末尾或ASCII字符,若是則轉(zhuǎn)下一步驟。即依照順序讀取下一單字節(jié)并判斷是否讀取到所述電子書文件末尾或讀取到ASCII 字符,若是則轉(zhuǎn)下一步驟,若否則繼續(xù)讀取。本步驟采用循環(huán)算法依照順序讀取下一單字節(jié),直至讀取到所述電子書文件末尾或讀取到所述ASCII字符。
具體來說,步驟102包括下列子步驟 1021、讀取下一個(gè)單字節(jié)。1022、判斷是否讀取到所述電子書文件的末尾,若是則轉(zhuǎn)步驟103,若否則轉(zhuǎn)步驟 1023。1023、判斷該單字節(jié)是否為ASCII字符,若是則轉(zhuǎn)步驟103,若否則繼續(xù)往下讀取。作為一實(shí)施例,步驟1022按照以下方法判斷是否讀取到所述電子書文件的末尾 當(dāng)前單字節(jié)位置減去電子書文件初始位置等于電子書文件大小時(shí),則判斷為讀取到所述電子書文件的末尾。步驟1023按照以下方法判斷所述單字節(jié)是否為ASCII字符該單字節(jié)范圍大于等于0x00并且小于等于0x7f時(shí),則判斷為讀取到ASCII字符。103、計(jì)算讀取的當(dāng)前位置所對(duì)應(yīng)的字符數(shù)與所述定位初始值的差值。104、判斷所述差值是否為偶數(shù),若否則按預(yù)定規(guī)則調(diào)整定位初始值并進(jìn)行定位, 若是則結(jié)束操作。具體來講,步驟104中按以下步驟進(jìn)行若所述差值為偶數(shù),則所述定位初始值不作調(diào)整并結(jié)束操作;若所述差值為奇數(shù),則將所述定位初始值減去1作為最終定位初始值并進(jìn)行定位。參照?qǐng)D2,圖2顯示了本發(fā)明一實(shí)施例的詳細(xì)流程圖200
首先,獲取定位初始值,參見步驟201。所述定位初始值按以下方式獲取和確定所述電子書按比例指定位置時(shí),所述定位初始值為待閱讀的起始字節(jié)占該電子書總字節(jié)的比例;所述電子書按頁數(shù)指定位置時(shí),所述定位初始值為在每頁字節(jié)大小一定的情況下指定待閱讀的頁數(shù);所述電子書按直接指定字節(jié)指定位置時(shí),所述定位初始值為指定待閱讀位置的字節(jié)。以上值都保證最低位為個(gè)位。其次,通過循環(huán)方式依次讀取下一個(gè)單字節(jié)直到遇文件尾或ASCII字符,參見步驟202、203、204。具體來講,當(dāng)前單字節(jié)位置減去電子書文件初始位置等于電子書文件大小時(shí),則判斷為讀取到所述電子書文件的末尾;當(dāng)該單字節(jié)范圍大于等于0x00并且小于等于 0x7f時(shí),則判斷為讀取到ASCII字符。再次,計(jì)算當(dāng)前字符位置與定位初始值的差值,參見步驟205。最后,判斷所述差值的奇偶性,參見步驟206、207。當(dāng)差值為偶數(shù)時(shí),說明定位初始值所標(biāo)示字節(jié)恰好為某漢字的第一個(gè)字節(jié),此時(shí)定位初始值準(zhǔn)確無誤無需調(diào)整;當(dāng)差值為奇數(shù)時(shí),說明定位初始值有誤,需要減去1從而得到最終的定位初始值,保證準(zhǔn)確定位跳轉(zhuǎn)位置。本發(fā)明是依據(jù)ASCII字符的編碼值范圍與漢字的編碼值范圍處于不同區(qū)間而設(shè)計(jì)的。ASCII字符的編碼范圍為0x00至0x7f,GB碼編碼范圍為OxAlAl至0xF7FE,且高、低字節(jié)的編碼均大于OxAl。直到讀到某字節(jié)恰處于ASCII字符編碼范圍時(shí),上述范圍差別能保證該字節(jié)為ASCII碼而不是漢字的第一個(gè)或第二個(gè)字節(jié),同時(shí)ASCII字符是自初始值以來的第一個(gè)ASCII字符,而之前所有字節(jié)全部為漢字。所以該字符位置減去正確的定位初始值得到差值應(yīng)該是偶數(shù)而不是奇數(shù),這樣就確保了不會(huì)發(fā)生錯(cuò)位亂碼現(xiàn)象。本發(fā)明所適用的電子書特點(diǎn)為電子書編碼格式為GB2312,漢字編碼大小為雙字節(jié),ASCII字符編碼大小為單字節(jié)。傳統(tǒng)的電子書跳轉(zhuǎn)方法是從文件開始處解析字符,直至跳轉(zhuǎn)的字節(jié)處來定位。而本發(fā)明則是直接從跳轉(zhuǎn)字節(jié)處定位,再通過向后解析字符來調(diào)整,跳過了前面大段與本頁顯示無關(guān)字符的解析,因此大大提高了解析速度。本技術(shù)領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,以上的實(shí)施例僅是用來說明本發(fā)明, 而并非用作為對(duì)本發(fā)明的限定,只要在本發(fā)明的實(shí)質(zhì)精神范圍內(nèi),對(duì)以上實(shí)施例的變化、變型都將落在本發(fā)明的權(quán)利要求書范圍內(nèi)。
權(quán)利要求
1. 一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法,其適用于GB2312編碼電子書,其特征在于, 包括以下步驟1.1、獲取所述電子書的定位初始值;1. 2、依照順序讀取下一單字節(jié)并判斷是否讀取到所述電子書文件末尾或讀取到ASCII 字符,若是則轉(zhuǎn)下一步驟,若否則繼續(xù)讀?。?.3、計(jì)算讀取的當(dāng)前位置所對(duì)應(yīng)的字符數(shù)與所述定位初始值的差值;1.4、判斷所述差值是否為偶數(shù),若否則依照預(yù)定規(guī)則調(diào)整所述定位初始值并進(jìn)行定位,若是則結(jié)束操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述的步驟1.1中的定位初始值按以下方式獲取和確定所述電子書按比例指定位置時(shí),所述定位初始值為待閱讀的起始字節(jié)占該電子書總字節(jié)的比例;所述電子書按頁數(shù)指定位置時(shí),所述定位初始值為在每頁字節(jié)大小一定的情況下指定待閱讀的頁數(shù);所述電子書按直接指定字節(jié)指定位置時(shí),所述定位初始值為指定待閱讀位置的字節(jié)。
3.如權(quán)利要求2所述的方法,其特征在于,所述的步驟1.2包括下列子步驟3.1、讀取下一個(gè)單字節(jié);3. 2、判斷是否讀取到所述電子書文件的末尾,若是則轉(zhuǎn)所述步驟1.3,若否則轉(zhuǎn)步驟3. 3 ;3.3、判斷該單字節(jié)是否為ASCII字符,若是則轉(zhuǎn)所述步驟1. 3,若否則繼續(xù)往下讀取。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟3.2按照以下方法判斷是否讀取到所述電子書文件的末尾當(dāng)前單字節(jié)位置減去電子書文件初始位置等于電子書文件大小時(shí),則判斷為讀取到所述電子書文件的末尾。
5.如權(quán)利要求4所述的方法,其特征在于,所述步驟3.3按照以下方法判斷所述單字節(jié)是否為ASCII字符該單字節(jié)范圍大于等于0x00并且小于等于0x7f時(shí),則判斷為讀取到 ASCII字符。
6.如權(quán)利要求5所述的方法,其特征在于,所述步驟1.2采用循環(huán)算法依照順序讀取下一單字節(jié),直至讀取到所述電子書文件末尾或讀取到所述ASCII字符。
7.如權(quán)利要求1至6任一項(xiàng)所述的方法,其特征在于,所述步驟1.4中若所述差值為偶數(shù),則所述定位初始值不作調(diào)整并結(jié)束操作;若所述差值為奇數(shù),則將所述定位初始值減去1作為最終定位初始值并進(jìn)行定位。
全文摘要
本發(fā)明揭示了一種移動(dòng)終端的電子書跳轉(zhuǎn)定位方法,首先計(jì)算讀取的電子書當(dāng)前位置所對(duì)應(yīng)的字符數(shù)與所述定位初始值的差值,并判斷所述差值的奇偶性,再按預(yù)定規(guī)則對(duì)所述定位初始值進(jìn)行調(diào)整并進(jìn)行定位。本發(fā)明可以有效實(shí)現(xiàn)GB2312編碼電子書的準(zhǔn)確定位,防范錯(cuò)位亂碼的出現(xiàn),并提高定位效率。
文檔編號(hào)G06F17/22GK102314413SQ20111004325
公開日2012年1月11日 申請(qǐng)日期2011年2月23日 優(yōu)先權(quán)日2010年7月6日
發(fā)明者安偉豐, 左云霞, 趙蘭英 申請(qǐng)人:上海聞泰電子科技有限公司