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

文档序号:19020005发布日期:2019-11-01 20:36阅读:633来源:国知局
一种SIM卡上电话本姓名排序的方法、系统及SIM卡与流程

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



背景技术:

目前在sim卡端直接对电话本记录进行排序的处理的需求和技术相对较少,同时绝大多数的处理方案只是针对电话本记录的用户姓名的首字母进行一下简单的排序。由于sim卡的处理芯片的处理速度和可用空间都是非常有限,因此在存储比较多的记录的时候对记录先排序然后再进行后续显示等处理时,这个间隔时间会过长,从而有可能导致终端认为卡出现异常,甚至出现手机死机等兼容性问题,会使客户无法接受这个比较长的等待时间。

冒泡排序(bubblesort,中国台湾地区译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的是提供一种sim卡上电话本姓名排序的方法、系统及sim卡,能把排序所需要的时间进行分散,解决当电话本较多时按全名排序的时间瓶颈问题。

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

(1)从sim卡的电话本中选出有效记录,整理到缓存区,并记录有效记录的个数n;

(2)记录当前显示页的页号n和剩余无序记录数,其中剩余无序记录数等于有效记录的个数n减去当前显示页码n与预设页面显示条数m的乘积;

(3)按预设顺序采用冒泡排序的原理对缓存区中的有效记录进行排序,查找排序在第nm+1条到第(n+1)m条的记录,并通过主动式命令selectitem实现显示;

(4)等待用户操作,若用户选择“nextpage”,则页号加1,剩余无序记录数减预设页面显示条数,继续步骤(3)。

进一步,在步骤(3)中所述预设顺序具体包括:

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

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

若在步骤(2)中当前无显示,即n=0时,在步骤(3)中查找排序在第1条到第m条的记录作为第一页,通过主动式命令selectitem实现显示。

进一步,在步骤(2)之后,步骤(3)之前还包括:

判断缓存区中剩余无序记录数是否大于预设页面显示条数,若缓存区中剩余无序记录数大于预设页面显示条数,则添加“nextpage”选项到缓存区中。

进一步,在步骤(2)之后,步骤(3)之前还包括:

判断缓存区中剩余无序记录数是否大于预设页面显示条数,若缓存区中剩余无序记录数小于或等于预设页面显示条数,则在步骤(3)中查找全部的剩余排序记录进行显示。

进一步,在步骤(3)之后,步骤(4)之前还包括:

判断当前显示页是否为第一页;

若不是第一页,则添加“previouspage”选项到selectitem缓存区;

若是第一页,则进入步骤(4)。

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

若用户选择“previouspage”,则页号减1,剩余无序记录数加预设页面显示条数,继续步骤(3)。

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

若用户选择当前显示页中有效记录,则显示名字与存放的电话号码。

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

记录模块,用于从sim卡的电话本中选出有效记录,整理到缓存区,并记录有效记录的个数n;

记录模块还用于记录当前显示页的页号n和剩余无序记录数,其中剩余无序记录数等于有效记录的个数n减去当前显示页码n与预设页面显示条数m的乘积;

排序模块,用于按预设顺序采用冒泡排序的原理对缓存区中的有效记录进行排序,查找排序在第nm+1条到第(n+1)m条的记录,并通过主动式命令selectitem实现显示;

计数模块,等待用户操作,若用户选择“nextpage”,则页号加1,剩余无序记录数减预设页面显示条数。

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

本发明的效果在于:采用本发明所述的方法、sim卡和移动终端,在电话本顺序排列总时间不变的前提下,把电话本实际存放记录进行分页,这样的好处是当通讯录较多时,不必把全部的顺序排列完毕后再进行显示,而是分拆到每一页的查找中,可以提高单页的显示时间,给用户较好的使用体验。

附图说明

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

图2是本发明所述方法一实施例的结构框图;

图3是本发明中姓名排序方法一实施例的流程示意图;

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

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

具体实施方式

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

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

步骤101:从sim卡的电话本中选出有效记录,整理到缓存区,并记录有效记录的个数n。

在一个具体的实施例中,将电话本中信息不全的剔除。具体的,如,目前市场上手机号都为11位,若某条存为手机格式的记录中,手机号大于或小于11位,则将其剔除。

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

通过上述判断,从电话本中选出有效记录,整理到缓存区,并记录有效记录的个数n。

步骤102:记录当前显示页的页号n和剩余无序记录数,其中剩余无序记录数等于有效记录的个数n减去当前显示页码n与预设页面显示条数m的乘积。

在缓存区中新增页号n和剩余无序记录数项目,并实时更新。其中,页号n为当前显示页的页号,剩余无序记录数为有效记录的个数n减去当前显示页码n与预设页面显示条数m的乘积,即为n-nm。

步骤103:按预设顺序采用冒泡排序的原理对缓存区中的有效记录进行排序,查找排序在第nm+1条到第(n+1)m条的记录,并通过主动式命令selectitem实现显示。

在排序之前,还需要判断缓存区中剩余无序记录数是否大于预设页面显示条数,若缓存区中剩余无序记录数大于预设页面显示条数,即剩余的有效记录一页显示不下,则添加“nextpage”选项到缓存区中。

若缓存区中剩余无序记录数小于或等于预设页面显示条数,则在步骤103中,等剩余有效记录排序完成后,查找全部的剩余排序记录进行显示。

在初始化时,当前页面无显示,即n=0,在按预设顺序采用冒泡排序的原理对缓存区中的有效记录进行排序时,若完成的排序个数等于预设页面显示条数m时,查找排序在第1条到第m条的记录作为第一页,通过主动式命令selectitem实现显示。通过上述方法,在显示第一页时,不需要等到所有有效记录完成排序,仅在完成预设页面显示条数m个排序时即可显示,大大的缩短了用户等待时间。

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

参阅图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的顺序保持不变。

在具体的排序显示过程中,当显示第n页的时候,采用冒泡排序的原理,对缓存区中有效记录的用户名字的全名进行排序。为了缓解sim卡处理芯片的数据处理压力和可用空间压力,当显示页号更新时,只需完成下一页显示所需个数的有效记录排序。当显示第n页的时候,查找排序在第(n-1)m+1条到第nm条的记录,并通过主动式命令selectitem实现显示。

在一个具体的实施例中,结合图2,例如,电话本中记录有10条有效记录,预设的每页显示条数为8条。排序前在缓存区存放的10条无序的记录信息。在第一页显示之前,对缓存区中的10条有效记录进行冒泡算法排序,先找到排序靠前的8条有效记录,然后获取该8条记录的具体信息添加到selectitem主动式命令中给出显示。在排序前剩余无序记录数为10,大于预设的每页显示条数为8条,则添加“nextpage”到缓存区。

当第一页显示完成后,更新页号为1,剩余无序记录数为2。由于剩余无序记录数为2小于预设的每页显示条数为8,则剩下的有效记录能通过一页显示完。

步骤104:等待用户操作,若用户选择“nextpage”,则页号加1,剩余无序记录数减预设页面显示条数,继续步骤103。

当第一页显示完成后,需要根据用户操作完成剩下的排序。在等待用户操作之前,还需判断当前显示页是否为第一页。若不是第一页,则添加“previouspage”选项到selectitem缓存区。若是第一页,则进入步骤104。

在一个具体的实施例中,若用户选择“nextpage”,则页号加1,剩余无序记录数减预设页面显示条数,继续步骤103。

在其他实施例中,若用户选择“previouspage”,则页号减1,剩余无序记录数加预设页面显示条数,继续步骤103。需要指出的是,若当前显示页为第一页,那么用户无法选择“previouspage”。

在其他实施例中,用户还可以选择当前显示页中有效记录。若用户选择当前页中的有效记录,则显示有效记录中的具体信息,名字与存放的电话号码。

区别于现有技术特征,本发明提供的一种sim卡上电话本姓名排序的方法,在电话本顺序排列总时间不变的前提下,把电话本实际存放记录进行分页,这样的好处是当通讯录较多时,不必把全部的顺序排列完毕后再进行显示,而是分拆到每一页的查找中,可以提高单页的显示时间,给用户较好的使用体验。

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

记录模块401,用于从sim卡的电话本中选出有效记录,整理到缓存区,并记录有效记录的个数n;

记录模块401还用于记录当前显示页的页号n和剩余无序记录数,其中剩余无序记录数等于有效记录的个数n减去当前显示页码n与预设页面显示条数m的乘积;

排序模块402,用于按预设顺序采用冒泡排序的原理对缓存区中的有效记录进行排序,查找排序在第nm+1条到第(n+1)m条的记录,并通过主动式命令selectitem实现显示;

计数模块403,等待用户操作,若用户选择“nextpage”,则页号加1,剩余无序记录数减预设页面显示条数。

区别于现有技术特征,本发明提供的sim卡上电话本姓名排序的系统,在电话本顺序排列总时间不变的前提下,把电话本实际存放记录进行分页,这样的好处是当通讯录较多时,不必把全部的顺序排列完毕后再进行显示,而是分拆到每一页的查找中,可以提高单页的显示时间,给用户较好的使用体验。

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

区别于现有技术特征,本发明提供的sim卡,在电话本顺序排列总时间不变的前提下,把电话本实际存放记录进行分页,这样的好处是当通讯录较多时,不必把全部的顺序排列完毕后再进行显示,而是分拆到每一页的查找中,可以提高单页的显示时间,给用户较好的使用体验。

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

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