一种SIM卡上电话本姓名排序优化的方法、系统及SIM卡与流程

文档序号:19065051发布日期:2019-11-06 02:15阅读:362来源:国知局
一种SIM卡上电话本姓名排序优化的方法、系统及SIM卡与流程

本发明属于智能卡领域,具体涉及一种sim卡上电话本姓名排序优化的方法、系统及sim卡。



背景技术:

目前在sim卡端直接对电话本记录进行排序的处理的需求和技术相对较少,同时绝大多数的处理方案只是针对电话本记录的用户姓名的首字母进行一下简单的排序,这种方式存在的显著的局限性就是当用户姓名的首字母相同时,这个排序是无效的。

由于sim卡的处理芯片的处理速度和可用空间都是非常有限,因此在存储比较多的记录的时候对记录先排序然后再进行后续显示等处理时,这个间隔时间会过长,从而有可能导致终端认为卡出现异常,会使客户无法接受这个比较长的等待时间。同时由于ram空间资源有限和时效性,也不可能把电话本记录都在ram空间中进行操作。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的是提供一种sim卡上电话本姓名排序优化的方法、系统及sim卡,能通过优化存储和检索方式提高显示效率。

为达到以上目的,本发明采用的技术方案是:一种sim卡上电话本姓名排序优化的方法,包括以下步骤:

(1)在flash空间开辟缓冲空间record_buffer存储电话本有效记录,所述有效记录至少包括姓名、电话号码;

(2)为所述有效记录按顺序创建唯一的索引值;

(3)在ram空间开辟缓存空间index_buffer存储所述有效记录在flash缓存空间中的索引值;

(4)采用冒泡排序的原理对索引值所关联的有效记录中的姓名按预设方式进行比较,任意两个有效记录比较完成后,按比较结果调整索引值顺序;

(5)等待用户操作,按用户需求从index_buffer中顺序读出索引值,通过索引值获取其关联的有效记录。

进一步,在步骤(1)之前还包括:

从sim卡的电话本中选出有效记录。

进一步,所述排序方法还包括:

在更新电话本记录文件的时候,同时把电话本有效记录缓存到

record_buffer中,以及把有效记录在flash缓冲区中的索引值存放到index_buffer中。

进一步,在步骤(4)中所述预设方式具体包括:

特殊字符在数字之前,数字在字母之前;小写字母在大写字母之前;字符少的名字和字符多的名字左起开始都相同时,字符少的名字在字符多的名字之前。

进一步,所述方法还包括:

若预设每页显示条数为m,在index_buffer中读出第1条到第m条的索引值,通过索引值获取其关联的有效记录作为第一页显示出来。

进一步,所述方法还包括:

添加“previouspage”、“nextpage”以及当前显示的页号n选项到flash空间。

进一步,在步骤(5)所述用户操作具体还包括:

若用户选择“previouspage”,则页号减1,若当前显示第n页,则查找第(n-2)m+1条到第(n-1)m的索引值,通过索引值获取其关联的有效记录作为第n-1页显示出来;

若用户选择“nextpage”,则页号加1,若当前显示第n页,则查找第nm+1条到第(n+1)m的索引值,通过索引值获取其关联的有效记录作为第n+1页显示出来。

进一步,在步骤(5)中所述用户操作具体包括:

若用户选择当前显示页中有效记录,则根据索引值显示所述有效记录的全部信息。

本发明采用的另一种技术方案是提供一种sim卡上电话本姓名排序的系统,包括以下模块:

存储模块一,用于存储电话本有效记录;

索引模块,用于为所述有效记录按顺序创建唯一的索引值;

存储模块二,用于存储有效记录在flash缓存空间中的索引值;

排序模块,用于采用冒泡排序的原理对索引值所关联的有效记录中的姓名按预设方式进行比较,任意两个有效记录比较完成后,按比较结果调整索引值顺序;

显示模块,用于按用户需求从index_buffer中顺序读出索引值,通过索引值获取其关联的有效记录。

本发明采用的另一种技术方案是提供一种sim卡,包括:芯片处理器、存储器和存储在所述存储器中并可在所述处理器上运行的的计算机程序,所述芯片处理器执行所述计算机程序以实现如权利要求1-8任一项所述方法中的步骤。

本发明的效果在于:采用本发明所述的方法、sim卡和移动终端,通过优化了电话本的存储和检索方式,使得在显示电话本菜单的时候不对标准电话本文件进行查询,而是通过额外创建的记录索引值去访问电话本记录存放的用户名字,根据当前页号去记录中获取本页所需要显示的记录条数,提高显示效率。

附图说明

图1是本发明所述排序方法一实施例的流程示意图;

图2是本发明所述方法在record_buffer中存储的一实施例示意图;

图3是本发明所述方法中姓名比较的一实施例示意图;

图4是本发明所述方法显示时一实施例的示意图;

图5是本发明所述排序系统一实施例的结构示意图;

图6是本发明所述sim卡一实施例的结构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明保护的范围。

如图1所示,图1是本发明所述方法一实施例的流程示意图,所述方法包括以下步骤:

步骤101:在flash空间开辟缓冲空间record_buffer存储电话本有效记录,所述有效记录至少包括姓名、电话号码。

在此之前,要从sim卡的电话本中选出有效记录。在一个具体的实施例中,将电话本中信息不全的剔除。具体的,如,目前市场上手机号都为11位,若某条存为手机格式的记录中,手机号多余或少于11,则将其剔除。

由于姓名中的每个字符都是按照字符在ascii码表中的顺序进行排序,所以在其他实施例中,若是姓名中包括不能识别的字符,也需要将其剔除。

通过上述判断,从电话本中选出有效记录。然后,在flash空间开辟缓冲空间record_buffer,并将有效记录存储。

步骤102:为所述有效记录按顺序创建唯一的索引值。

参阅图2,图2是本发明所述方法在record_buffer中存储的一实施例示意图。

为每条有效记录按顺序创建一个索引值。在一个具体的实施例中,若有效记录共n个,则按0到n-1为有效记录创建唯一确定的索引值。在flash缓冲空间record_buffer中,每条有效记录在flash缓存空间中以(0-(n-1))的顺序存储,从而保证每条记录具有唯一确定的索引值。

步骤103:在ram空间开辟缓存空间index_buffer存储所述有效记录在flash缓存空间中的索引值。

继续参阅图2,在一个具体的实施例中,按0到n-1在ram缓存空间index_buffer中存储所述有效记录在flash缓存空间中的索引值。

在更新电话本记录文件的时候,同时把电话本有效记录缓存到

record_buffer中,以及把有效记录在flash缓冲区中的索引值存放到index_buffer中。

步骤104:采用冒泡排序的原理对索引值所关联的有效记录中的姓名按预设方式进行比较,任意两个有效记录比较完成后,按比较结果调整索引值顺序。

采用冒泡排序的原理对索引值所关联的有效记录中的姓名按预设方式进行比较,在比较过程中,如索引值为0和1的进行比较时,实际上是首先读取与索引值相关联的有效记录,然后用有效记录中的姓名进行比较。当任意两个有效记录比较完成后,按比较结果调整索引值顺序,直到完成所有排序。

其中,所述预设方式为特殊字符在数字之前,数字在字母之前;小写字母在大写字母之前;字符少的名字和字符多的名字左起开始都相同时,字符少的名字在字符多的名字之前。

参阅图3,图3是本发明所述方法中姓名比较的一实施例示意图。在具体的任意两个有效记录进行比较时,包括以下步骤:

在图3中,a和b表示缓冲区中未排序的任意两条有效记录用户的全名字符串。x表示从a的首字节开始的一个字符,y表示从b的首字节开始的一个字符。

首先,分别从姓名a和b中选取左起第一个字符x和y,并记录字符的偏移。

接着,判断x和y的关系。若x小于y,则a排在b的前面。若x大于y,则b排在a的前面。

由于用户的全名是以十六进制字符串的形式存储在sim卡内存中,每条记录中用户全名大小是固定的,假设为n字节,不够n字节长度的以十六进制数0xff来填充。所以,若x等于y,则再判断y是否等于oxff。若y等于0xff,则a排在b的前面。

若y不等于0xff,则接着判断x是否等于0xff。若x等于0xff,则b排在a的前面。

若x不等于0xff,接着判断x和y是否为小写。若x为小写,则a排在b的前面。若y为小写,则b排在a的前面。若x和y同时为小写,则将x和y转化为大写x'和y'继续进行比较。

若x'小于y',则a排在b的前面。若x'大于y',则b排在a的前面。

若排序还未完成,则判断字符偏移是否大于全名长度。若没有,则将字符偏移加1,取a和b的第二位进行比较。若字符偏移大于全名长度,则a和b的顺序保持不变。

根据比较结果,改变相应索引值的位置。

步骤105:等待用户操作,按用户需求从index_buffer中顺序读出索引值,通过索引值获取其关联的有效记录。

在初始化时,当前页面无显示,在按预设顺序采用冒泡排序的原理对缓存区中的有效记录进行排序。若预设每页显示条数为m,在index_buffer中读出排序在第1条到第m条的索引值,通过索引值获取其关联的有效记录作为第一页显示出来。

具体的,参阅图4,图4为本发明所述方法显示时一实施例的示意图。在一个具体的实施例中,例如,电话本中记录有10条有效记录,预设的每页显示条数为8条。排序前,在缓存区存放的10条无序的记录信息。在第一页显示之前,对缓存区中的10条索引值所关联的有效记录中的姓名排序。排序完成时,先找到排序靠前的8条大的索引值,然后通过索引值获获取该8条关联的有效记录作为第一页显示出来。

为了更好的显示效果,添加“previouspage”、“nextpage”以及当前显示的页号n选项到flash空间。

当第一页显示完成后,需要根据用户操作完成剩下的排序。在等待用户操作之前,还需判断当前显示页是否为第一页。若不是第一页,则添加“previouspage”和“nextpage”选项到flash空间。若是第一页,则只添加“nextpage”选项到flash空间。即,若当前显示页为第一页,那么用户无法选择“previouspage”。

在一个具体的实施例中,若用户选择“nextpage”,则页号加1,若当前显示第n页,则查找第nm+1条到第(n+1)m的索引值,通过索引值获取其关联的有效记录作为第n+1页显示出来。

在其他实施例中,若用户选择“previouspage”,则页号减1,若当前显示第n页,则查找第(n-2)m+1条到第(n-1)m的索引值,通过索引值获取其关联的有效记录作为第n-1页显示出来。。

在其他实施例中,用户还可以选择当前显示页中有效记录。若用户选择当前页中的有效记录,根据索引值显示所述有效记录的全部信息。

区别于现有技术特征,本发明提供的一种sim卡上电话本姓名排序优化的方法,通过优化了电话本的存储和检索方式,使得在显示电话本菜单的时候不对标准电话本文件进行查询,而是通过额外创建的记录索引值去访问电话本记录存放的用户名字,根据当前页号去记录中获取本页所需要显示的记录条数,提高显示效率。

本发明还提供一种sim卡上电话本姓名排序的系统。参阅图5,图5是本发明所述系统一实施例的结构示意图。该系统500包括以下模块:

存储模块一501,用于存储电话本有效记录。

索引模块502,用于为所述有效记录按顺序创建唯一的索引值。

存储模块二503,用于用于存储有效记录在flash缓存空间中的索引值。

排序模块504,用于采用冒泡排序的原理对索引值所关联的有效记录中的姓名按预设方式进行比较,任意两个有效记录比较完成后,按比较结果调整索引值顺序。

显示模块505,用于按用户需求从index_buffer中顺序读出索引值,通过索引值获取其关联的有效记录。

区别于现有技术特征,本发明提供的sim卡上电话本姓名排序的系统,通过优化了电话本的存储和检索方式,使得在显示电话本菜单的时候不对标准电话本文件进行查询,而是通过额外创建的记录索引值去访问电话本记录存放的用户名字,根据当前页号去记录中获取本页所需要显示的记录条数,提高显示效率。

本发明还提供一种sim卡。参阅图6,图6是本发明所述sim卡一实施例的结构示意图。该sim卡600包括芯片处理器601、存储器602和存储在所述存储器中并可在所述处理器上运行的的计算机程序603。芯片处理器601执行所述计算机程序603以实现上述方法中的步骤。

区别于现有技术特征,本发明提供的sim卡,通过优化了电话本的存储和检索方式,使得在显示电话本菜单的时候不对标准电话本文件进行查询,而是通过额外创建的记录索引值去访问电话本记录存放的用户名字,根据当前页号去记录中获取本页所需要显示的记录条数,提高显示效率。

本领域技术人员应该明白,本发明所述的方法和系统并不限于具体实施方式中所述的实施例,上面的具体描述只是为了解释本发明的目的,并非用于限制本发明。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围,本发明的保护范围由权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1