CN102567285A - 一种文档加载的方法及装置 - Google Patents
一种文档加载的方法及装置 Download PDFInfo
- Publication number
- CN102567285A CN102567285A CN2010105996449A CN201010599644A CN102567285A CN 102567285 A CN102567285 A CN 102567285A CN 2010105996449 A CN2010105996449 A CN 2010105996449A CN 201010599644 A CN201010599644 A CN 201010599644A CN 102567285 A CN102567285 A CN 102567285A
- Authority
- CN
- China
- Prior art keywords
- document
- piece
- string
- character string
- document piece
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明实施例公开了一种文档加载的方法及装置,涉及信息显示领域,为丰富用户的阅读体验而发明。所述方法包括:将文档划分成至少两个文档块;分别读取所述文档块;将所述文档块对应的源字符串转换为目标字符串;将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。本发明实施例主要用于电子阅读器中,并且利用本发明实施例的技术方案可以丰富用户阅读的体验。
Description
技术领域
本发明涉及信息显示领域,尤其涉及一种文档加载的方法及装置。
背景技术
目前,电子阅读器是一种采用LCD(Liquid Crystal Display,液晶显示屏)或电子纸为显示屏幕的新式数字阅读器,用户使用电子阅读器可以阅读互联网上绝大部分格式的电子书。
一般地,电子阅读器加载一个文档时,首先,读取所述文档的内容,然后将所述文档的内容转换成电子阅读器能够识别的编码内容并存储,最后,将编码内容赋值给显示空间所支持的字符串并存储,至此,电子阅读器就能够显示此文档。
在实现上述文档加载的过程中,发明人发现现有技术中至少存在如下问题:电子阅读器按照上述操作方法加载文档时,所需的内存空间很大,加载文档的速度很慢。而对于电子阅读器这种嵌入式设备,其内存空间是有限的,无法加载较大的文档,因而按照现有的文档加载的方法,速度会很慢,从而影响了用户阅读的体验。
发明内容
本发明实施例提供一种文档加载的方法及装置,以丰富用户阅读的体验。
本发明实施例采用如下技术方案:
一种文档加载的方法,包括:
将文档划分成至少两个文档块;
分别读取所述文档块;
将所述文档块对应的源字符串转换为目标字符串;
将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
一种文档加载的装置,包括:
文档分块单元,用于将文档划分成至少两个文档块;
文档块读取单元,用于分别读取所述文档块;
目标字符串转换单元,用于将所述文档块对应的源字符串转换为目标字符串;
待显示字符串处理单元,用于将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
本发明实施例提供的文档加载的方法及装置,首先,将文档划分成至少两个文档块;然后分别读取所述文档块;再将所述文档块对应的源字符串转换为目标字符串;最后,所述目标字符串转换为待显示字符串,并显示所述待显示字符串。因而,当用户使用电子阅读器阅读大的文档时,由于是将该文档分成至少两个文档块,也即在加载文档块的过程中文档块所占用的内存小于整个文档占用的内存,因此,利用本发明实施例的技术方案,在电子阅读器上加载文档块更加节省内存,更加快捷,从而改善了用户阅读的体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例二文档加载的方法的流程图;
图2为本发明实施例二中第三内存空间的示意图;
图3为本发明实施例二和现有技术方案的对比示意图;
图4为本发明实施例三文档加载的装置的示意图;
图5为本发明实施例三的装置的又一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为提高电子阅读器加载文档的速度,改善用户阅读的体验,本发明实施例一提供了一种文档加载的方法,首先,将文档划分成至少两个文档块。然后分别读取所述文档块。再将所述文档块对应的源字符串转换为目标字符串。最后,将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
因而,通过上述描述可以看出,当用户使用电子阅读器阅读大的文档时,由于是将该文档分成至少两个文档块,也即在加载文档块的过程中文档块所占用的内存小于整个文档占用的内存,因此,利用本发明实施例的技术方案,在电子阅读器上加载文档块更加节省内存,更加快捷,从而改善了用户阅读的体验。
以下结合具体的实施例,详细描述一下本发明实施例加载文档的方法。
如图1所示,本发明实施例二提供了一种文档加载的方法,具体包括:
步骤11、电子阅读器将文档划分成至少两个文档块。
在本实施例中,电子阅读器具体将文档分成几块,是根据所述文档的大小来决定的。对于大的文档,可以将其多划分成几个文档块,而相对较小的文档,则可以少划分几块。
具体地,电子阅读器通过下面的公式确定将所述文档划分成几块:
BLOCK_NUM=FILE_SIZE%BLOCK_SIZE?FILE_SIZE/BLOCK_SIZE+1:FILE_SIZE/BLOCK_SIZE
其中,FILE_SIZE为所述文档的大小,BLOCK_SIZE为预设的文档块的大小,由实际应用中的系统环境和硬件配置来决定,BLOCK_NUM为文档块的数量,即所述文档被划分成BLOCK_NUM块。
并且,所述电子阅读器有多种方式存储各个文档块的起止位置信息,以方便电子阅读器更加快速地读取各个文档块。例如链表、数组、容器等方式,其中链表相对于其他方式更灵活、简便。例如,电子阅读器加载一个文档FILE,其大小为FILE_SIZE,预定文档块BLOCK的大小为BLOCK_SIZE,首先根据文档块的数量BLOCK_NUM的计算公式,确定BLOCK_NUM为N,然后通过链表存储所述文档FILE,如下表1所示:
表1
块号 | 开始位置 | 结束位置 |
1 | 0 | 1*BLOCK_SIZE |
2 | 1*BLOCK_SIZE+1 | 2*BLOCK_SIZE |
...... | ...... | ...... |
n | (n-1)*BLOCK_SIZE+1 | n*BLOCK_SIZE |
...... | ...... | ...... |
N | (N-1)*BLOCK_SIZE+1 | FILE_SIZE |
从上表1可以看出,第n块(1<=n<N)的起始位置为(n-1)*BLOCK_SIZE+1,终止位置为n*BLOCK_SIZE,而最后一个文档块的开始位置为(N-1)*BLOCK_SIZE+1,终止位置为FILE_SIZE。前(N-1)个文档块都是大小为BLOCK_SIZE的文档块,而最后一个文档块的大小不固定,所以当电子阅读器加载最后一个文档块时,要根据最后一个文档块的实际大小来分配内存。此过程结合下面的内容详细描述。
以电子阅读器加载一个20M的文档为例,假设预定文档块的大小为5M,因此,可将该20M的文档分成4块,电子阅读器可建立一个链表记录各文档块的起止位置,如下表2所示:
表2
块号 | 1 | 2 | 3 | 4 |
起止位置 | 0-5242880 | 5242881-10485760 | 10485761-15728640 | 15728641-20971520 |
通过上表2可以看出,第一文档块的起止位置是0-5442880字节,第二文档块的起止位置为5242881字节-10485760字节,第三文档块的起止位置是10485761字节-15728640字节,第四文档块的起止位置是15728641字节-20971520字节。
步骤12、电子阅读器分别读取所述文档块。
在此步骤中,电子阅读器开辟一个新的线程,称之为threadread,用于根据表2中的起止位置信息分别读取所述文档块,然后申请一个文档块的大小的内存空间用来存放所述文档块的源字符串,称此内存空间为第一内存空间。
在本实施例中,假设电子阅读器从第二文档块开始加载文档。具体地,电子阅读器根据所述第二文档块的起止位置信息,读取第二文档块,并申请5M的内存空间存放所述第二文档块的源字符串,此时,所述第一内存空间的大小为5M。
步骤13、电子阅读器将所述文档块对应的源字符串转换为目标字符串。
在此步骤中,电子阅读器另外开辟一个线程,称之为threadconver,专门用来将各文档块对应的源字符串转换为目标字符串。所述线程threadconver在将各文档块对应的源字符串转换为目标字符串的同时,也可以保证该转换的过程不会阻塞主进程,这样,用户在阅读显示的内容的时候,感受不到后台的转换过程,可以提高用户阅读的速度。
然后,电子阅读器再申请一个内存空间,用来存放转换后的目标字符串。一般地,用来存放目标字符串的内存空间是存放源字符串的内存空间的2倍,在此称存放目标字符串的内存空间为第二内存空间。
具体地,当通过步骤12读取第二文档块之后,电子阅读器将所述第二文档块对应的源字符串转换为目标字符串。由于所述第一内存空间的大小为5M,故电子阅读器将申请10M的第二内存空间来存放第二文档块转换后的目标字符串,并释放第一内存空间,大小为5M。
步骤14、电子阅读器将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
在本实施例中,由于转换后的目标字符串为单字节存取,而待显示字符串是多个字节存取的,例如2字节,最多为6字节,因此为了使目标字符串能够被识别并显示,电子阅读器需要把目标字符串赋值给显示空间所支持的待显示字符串。一般地,用来存放待显示字符串的内存空间小于存放目标字符串的内存空间,在此称存放待显示字符串的内存空间为第三内存空间。
具体地,对于第二文档块的目标字符串,电子阅读器将该目标字符串赋值给显示空间所支持的待显示字符串,并申请7.5M的内存空间用来存放该待显示字符串,此时,第三内存空间的大小为7.5M。
根据步骤12-步骤14,电子阅读器完成了第二文档块的加载。
如果所述第二文档块不是要加载的最后一个文档块,那么电子阅读器首先释放第一内存空间和第二内存空间,然后按照步骤12-步骤14的操作过程,继续加载下一个文档块直到最后一个文档块,所述下一个文档块可能是第三个文档块,也可能是用户需要加载的任一文档块。如果所述第二文档块是要加载的最后一个文档块,那么在步骤13中,电子阅读器将所述第二文档块对应的源字符串转换为目标字符串之后,还将释放第一内存空间;在步骤14中,电子阅读器将所述目标字符串转换为待显示字符串,并显示所述待显示字符串之后,还将释放第二内存空间。
在本实施例中,特别地,如图2所示,当电子阅读器往前加载文档块时,例如电子阅读器加载第二文档块之后,继续加载第三文档块的时候,将存放第三文档块的待显示字符串的内存空间追加到存放第二文档块的待显示字符串的内存空间之后;当电子阅读器往后加载文档块时,例如电子阅读器加载第二文档块之后,继续加载第一文档块的时候,将存放第一文档块的待显示字符串的内存空间插入到存放第二文档块的待显示字符串的内存空间之前。因此,无论电子阅读器往前加载还是往后加载,都不会覆盖第三内存空间原有的待显示字符串。这样对于加载过的文档块,电子阅读器不需要再次加载,节省了加载时间。
另外,如果一个文档的大小为FILE_SIZE,预定文档块的大小为BLOCK_SIZE,当FILE_SIZE小于BLOCK_SIZE时,可不再将所述文档分块,按照上述步骤12-步骤14直接加载所述文档。由于所述文档不大,电子阅读器不需要再另外开辟线程将所述文档的源字符串转换为目标字符串时,即在步骤12和步骤13中,电子阅读器可以使用一个线程读取所述文档,并将所述文档的源字符串转换为目标字符串。
以上只是以第二文档块为例进行的描述,对于其他文档块的处理方式相同。
如图3所示,利用本发明实施例的技术方案,当电子阅读器加载了所有文档块并释放第一内存空间和第二内存空间之后,占用内存空间仅为4*第三内存空间=4*7.5M=30M,即使在内存最大时刻,本发明实施例也仅仅占用了40M的内存空间,即第二内存空间+4*第三内存空间=10M+4*7.5M=40M。而利用现有技术,当电子阅读器加载20M的文档时,首先,申请20M的内存空间用来读取所述文档,然后将所述文档对应的源字符串转换为目标字符串,并申请40M的内存用来存储转换后的目标字符串,最后,将所述目标字符串赋值给显示空间所支持的待显示字符串,并申请30M的内存来存储待显示字符串,至此,电子阅读器加载20M的文档共占用了90M内存空间,即20M+40M+30M=90M。因而,当电子阅读器加载20M的文档时,利用本发明实施例的技术方案,相对于现有技术,可节省60M的内存空间。
因而,当用户使用电子阅读器阅读很大的文档时,由于是将该文档分成至少两个文档块,也即在加载文档块的过程中文档块所占用的内存小于整个文档占用的内存,并适时释放内存空间,因此,利用本发明实施例的技术方案,在电子阅读器上加载文档更加节省内存,更加快捷,从而丰富了用户阅读的体验。
如图4所示,本发明实施例三提供了一种文档加载的装置,具体包括:文档分块单元41,用于将文档划分成至少两个文档块;文档块读取单元42,用于分别读取所述文档块;目标字符串转换单元43,用于将所述文档块对应的源字符串转换为目标字符串;待显示字符串处理单元44,用于将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
其中,如前所述,所述文档分块单元41可根据所述文档的大小和预设的文档块大小将所述文档划分成至少两个文档块。
其中,如图5所示,所述装置还可包括:信息存储单元45,用于存储所述文档块的起止位置信息,以更加快速的读取各个文档块。并且,所述信息存储单元存储的形式有多种,例如链表、数组、容器等。
其中,所述目标字符串转换单元43可包括:第一转换模块,用于将所述文档块对应的源字符串转换为所述目标字符串;第一存储模块,用于存储所述目标字符串。所述待显示字符串处理单元44可包括:第二转换模块,用于将所述目标字符串转换为所述待显示字符串;第二处理模块,用于存储并显示所述待显示字符串。
此外,为了进一步节约内存,当电子阅读器加载最后一个文档块时,如图5所示,所述装置还可包括:释放单元46,用于释放所述源字符串占用的内存空间,或者用于释放所述目标字符串占用的内存空间;或者用于释放所述源字符串占用的内存空间,并释放所述目标字符串占用的内存空间。
在本发明实施例中,所述装置的工作原理可参照方法实施例中的描述。并且,本发明实施例的装置可位于电子阅读器中。
由上可以看出,当用户使用文档加载的装置阅读很大的文档时,由于是将该文档分成至少两个文档块,也即在加载文档块的过程中文档块所占用的内存小于整个文档占用的内存,因此,利用本发明实施例的文档加载的装置,加载文档时更加节省内存,更加快捷,从而改善了用户阅读的体验。
综上所述,本发明实施例提供的文档加载的方法及装置,首先,将文档划分成至少两个文档块;然后分别读取所述文档块;再将所述文档块对应的源字符串转换为目标字符串;最后,将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。因而,当用户使用电子阅读器阅读很大的文档时,由于是将该文档分成至少两个文档块,也即在加载文档块的过程中文档块所占用的内存小于整个文档占用的内存,因此,利用本发明实施例的技术方案,在电子阅读器上加载文档更加节省内存,更加快捷,从而改善了用户阅读的体验。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种文档加载的方法,其特征在于,包括:
将文档划分成至少两个文档块;
分别读取所述文档块;
将所述文档块对应的源字符串转换为目标字符串;
将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
2.根据权利要求1所述的方法,其特征在于,所述将文档划分成至少两个文档块,包括:
根据所述文档的大小和预设的文档块大小将所述文档划分成至少两个文档块。
3.根据权利要求1或2所述的方法,其特征在于,所述将文档划分成至少两个文档块之后,还包括:
存储所述文档块的起止位置信息;所述分别读取所述文档块包括:分别根据所述文档块的起止位置信息读取所述文档块。
4.根据权利要求1或2所述的方法,其特征在于,所述将所述文档块对应的源字符串转换为目标字符串之后,所述方法还包括:
当所述文档块为最后一个文档块时,释放所述源字符串占用的内存空间。
5.根据权利要求1或2所述的方法,其特征在于,所述将所述目标字符串转换为待显示字符串,并显示所述待显示字符串之后,所述方法还包括:
当所述文档块为最后一个文档块时,释放所述目标字符串占用的内存空间。
6.一种文档加载的装置,其特征在于,包括:
文档分块单元,用于将文档划分成至少两个文档块;
文档块读取单元,用于分别读取所述文档块;
目标字符串转换单元,用于将所述文档块对应的源字符串转换为目标字符串;
待显示字符串处理单元,用于将所述目标字符串转换为待显示字符串,并显示所述待显示字符串。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
信息存储单元,用于存储所述文档块的起止位置信息;
所述文档块读取单元用于分别根据所述文档块的起止位置信息读取所述文档块。
8.根据权利要求6所述的装置,其特征在于,所述目标字符串转换单元包括:
第一转换模块,用于将所述文档块对应的源字符串转换为所述目标字符串;
第一存储模块,用于存储所述目标字符串。
9.根据权利要求6所述的装置,其特征在于,所述待显示字符串处理单元包括:
第二转换模块,用于将所述目标字符串转换为所述待显示字符串;
第二处理模块,用于存储并显示所述待显示字符串。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:释放单元,用于在读取到最后一个文档块后,释放所述源字符串占用的内存空间和/或释放所述目标字符串占用的内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105996449A CN102567285A (zh) | 2010-12-13 | 2010-12-13 | 一种文档加载的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105996449A CN102567285A (zh) | 2010-12-13 | 2010-12-13 | 一种文档加载的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102567285A true CN102567285A (zh) | 2012-07-11 |
Family
ID=46412730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105996449A Pending CN102567285A (zh) | 2010-12-13 | 2010-12-13 | 一种文档加载的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567285A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462029A (zh) * | 2013-09-18 | 2015-03-25 | 北京新媒传信科技有限公司 | 一种智能终端中富文本显示的方法和系统 |
CN104572620A (zh) * | 2014-12-31 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 一种用于显示章节内容的方法和装置 |
WO2016023509A1 (zh) * | 2014-08-13 | 2016-02-18 | 北京配天技术有限公司 | 呈现文件的方法和文件呈现装置 |
CN111310415A (zh) * | 2018-11-23 | 2020-06-19 | 珠海金山办公软件有限公司 | 一种文档转换的方法、装置、计算机存储介质及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567303A (zh) * | 2003-07-03 | 2005-01-19 | 富士通株式会社 | 结构文档信息块的自动分割方法和装置 |
CN1279430C (zh) * | 2000-04-14 | 2006-10-11 | 皮克塞(研究)有限公司 | 数字文件处理系统、数据处理系统和外围设备 |
CN101788976A (zh) * | 2010-02-10 | 2010-07-28 | 北京播思软件技术有限公司 | 一种基于内容的文件分割方法 |
-
2010
- 2010-12-13 CN CN2010105996449A patent/CN102567285A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1279430C (zh) * | 2000-04-14 | 2006-10-11 | 皮克塞(研究)有限公司 | 数字文件处理系统、数据处理系统和外围设备 |
CN1567303A (zh) * | 2003-07-03 | 2005-01-19 | 富士通株式会社 | 结构文档信息块的自动分割方法和装置 |
CN101788976A (zh) * | 2010-02-10 | 2010-07-28 | 北京播思软件技术有限公司 | 一种基于内容的文件分割方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462029A (zh) * | 2013-09-18 | 2015-03-25 | 北京新媒传信科技有限公司 | 一种智能终端中富文本显示的方法和系统 |
CN104462029B (zh) * | 2013-09-18 | 2017-11-21 | 北京新媒传信科技有限公司 | 一种智能终端中富文本显示的方法和系统 |
WO2016023509A1 (zh) * | 2014-08-13 | 2016-02-18 | 北京配天技术有限公司 | 呈现文件的方法和文件呈现装置 |
CN104572620A (zh) * | 2014-12-31 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 一种用于显示章节内容的方法和装置 |
CN111310415A (zh) * | 2018-11-23 | 2020-06-19 | 珠海金山办公软件有限公司 | 一种文档转换的方法、装置、计算机存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102654827B (zh) | 一种先进先出缓冲器及缓存数据的方法 | |
CN103034467B (zh) | 图像显示方法、装置及移动终端 | |
US7937522B2 (en) | Method for flash memory data management | |
CN105843748B (zh) | 一种对内存中内存页的处理方法及装置 | |
WO2009034294A3 (en) | Methods and systems for generating 3-dimensional computer images | |
CN102567285A (zh) | 一种文档加载的方法及装置 | |
CN101673246A (zh) | 一种高效的先进先出数据池读写方法 | |
US20160342262A1 (en) | Apparatus and method for driving in-cell touch display panel | |
CN104102586A (zh) | 一种地址映射处理的方法、装置 | |
CN101777061A (zh) | 一种java卡对象管理方法及java卡 | |
TW200520536A (en) | Control device, system and method for reading multi-pixel | |
CN101826109A (zh) | 一种大容量文件分割方法、装置及系统 | |
CN102520902B (zh) | 基于单片块ram的并行写入多fifo实现方法 | |
US9256468B2 (en) | Dynamic incremental memory allocation on program stack | |
CN105095250A (zh) | 页面调度的处理方法和装置 | |
CN103377686B (zh) | Nand Flash 存储器及实现 Nand Flash 存储器连续读操作的方法 | |
CN104978169A (zh) | 期刊阅读应用的sdk处理方法及装置 | |
CN102541769A (zh) | 一种存储器接口访问控制方法及装置 | |
CN109213745A (zh) | 一种分布式文件存储方法、装置、处理器及存储介质 | |
CN105630410B (zh) | 使用非易失随机读写存储芯片动态管理文件存储区的方法 | |
CN102521156A (zh) | 一种映射关系访问方法和装置 | |
CN104409098A (zh) | 容量翻倍的芯片内部表项及其实现方法 | |
CN102118304B (zh) | 一种信元交换方法和装置 | |
CN103207843A (zh) | 一种数据行宽度可动态配置的cache结构设计方法 | |
CN103678428A (zh) | 一种文件系统的创建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120711 |