[发明专利]在嵌入式网络话机上实现的双向文本混排显示方法及装置有效
申请号: | 201911405601.X | 申请日: | 2019-12-30 |
公开(公告)号: | CN111178001B | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 丁百勇 | 申请(专利权)人: | 南京汉隆科技有限公司 |
主分类号: | G06F40/106 | 分类号: | G06F40/106;G06F40/126;G06F40/166 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 叶涓涓 |
地址: | 210012 江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 网络 话机 实现 双向 文本 显示 方法 装置 | ||
本发明公开了一种在嵌入式网络话机上实现的双向文本混排显示方法及装置,首先对原始字符串进行二次遍历得到方向码;随后根据生成的方向码,对原始字符串进行字符重排;最后按照重排字符串顺序写出字符。本发明采用简单方法和结构实现了常见的双向文本混排,无需原生系统支持,生成方向码仅需一个字符数长度的字节串,无需层级表。由于占用资源非常小,且算法简单,本发明适用范围广泛,尤其适用于硬件资源欠缺、系统先天缺陷的嵌入式设备。
技术领域
本发明属于通信技术领域,涉及嵌入式网络话机相关技术,尤其涉及一种在嵌入式网络话机上实现的双向文本混排显示方法及装置。
背景技术
双向文本指同一字符串中同时有由左往右排列的文字(如拉丁文,中文等绝大多数文字)和由右向左排列的文字(如阿拉伯文,希伯来文等)。一些嵌入式网络话机设备或因硬件资源有限,或因基于的显示系统不完备(如未原生支持),常常不能简单快速地处理双向文本的显示与编辑。
公开的双向文本显示通用算法较为复杂,需要用到双向字符类型表、多层级的嵌入层级表、计数器等结构,并通过多个规则反复作用,占用内存和运算资源过多,而且有人为设定的最大层级数这种限制,而嵌入式设备其硬件资源有限,在应用现有通用算法时往往速度缓慢,存在卡顿现象。
发明内容
为解决上述问题,本发明公开了一种在嵌入式网络话机上实现的双向文本混排显示方法及装置,简单易用、占用资源少,满足一般嵌入式系统使用。
为了达到上述目的,本发明提供如下技术方案:
在嵌入式网络话机上实现的双向文本混排显示方法,包括如下步骤:
步骤1,对原始字符串进行二次遍历得到方向码,方向码用于表示字符方向为R方向或是L方向,其中R表示由右到左,L表示由左到右;第一次遍历对所有字符进行方向初步判断,对于强方向类型的字符确定方向为R或L,对于其他字符暂定与基本方向相同;第二次遍历根据规则调整某些暂定方向的字符的方向;所述规则为:
对方向未确定的字符,逐一进行如下判断:看字符的两边是否有强方向类型字符,若没有,则本字符方向保持不变;若字符的两侧字符方向一致,则本字符d改成与它们一致;若起始方向侧有数字且基本方向为RTL,则d=1;将字符串中各字符对应的方向码中的e均设置为1;
步骤2,根据生成的方向码,对原始字符串进行字符重排,凡是R方向的,该R方向段内字符进行倒序排列,若基本方向是LTR,则此重排字符串为最终字符串;若基本方向是RTL,则各个方向段还进行段间倒序排列,最终生成重排字符串。
步骤3,按照重排字符串顺序写出字符。
进一步的,所述步骤1之前先对仅包含单一字符类型的文本进行预处理操作:
判断基本方向为LTR方向时,查找字符串中是否有RTL字符,若没有即返回,进行常规处理;
判断基本方向为RTL时,判断当字符串中仅包含RTL字符时,将整个字符串直接设定为R方向;判断当字符串中不包含RTL字符时,整个字符串直接设定为L方向。
进一步的,字符划分为以下几类:E-LTR字符,N-数字,F-符号,f-成对符号,B-空格,X-RTL字符;
所述步骤1具体包括如下子步骤:
使用一个字节记录一个字符的信息,存储信息为ttttttde,其中t表示类型,d表示方向,其中,0-LTR,1-RTL,e表示此字符方向是否已确定,其中0-未确定,1-已确定;默认初始值全为0;字节序列与原字符串的字符序列一一对应,字节形成方向码;
对字符串中的字符进行第一次遍历:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京汉隆科技有限公司,未经南京汉隆科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911405601.X/2.html,转载请声明来源钻瓜专利网。