泰文换行处理
泰文的是单个字符组成,但又有上下标。两个单词之间没有明显的分隔符,不象英文和中文。一般处理的方法为字典法。因此处理之前要点准备好字典,^_^,这是不好办!到网上找呀找,找到这个两个的开源代码:http://www.links.nectec.or.th/~yai/software.htmlhttp://thaigate.nii.ac.jp/files/ttex.html一个C++代码,,前者Swat
泰文的是单个字符组成,但又有上下标。两个单词之间没有明显的分隔符,不象英文和中文。
一般处理的方法为字典法。
因此处理之前要点准备好字典,^_^,这是不好办!
到网上找呀找,找到这个两个的开源代码:
http://www.links.nectec.or.th/~yai/software.html
http://thaigate.nii.ac.jp/files/ttex.html
一个C++代码,,前者Swath是比较完善的代码,并且提供两种算法:.1
1.MaxWordSeg 最多单词匹配
2.LongWordSeg 最长单词匹配
而ttex是个比较简单的项目,并且是C代码的。
嘻嘻,我就用了ttex.
Ttex的算法很简单,也是最长单词匹配
While(ostring)
{
If(n=findword(ostring))
Ostring++;
Else
Jump1Char(ostring);
//麻烦一点的就是在字典中找不到时的处理
}
代码处理的结果是给个单词加上分隔符,我的要求是换行。
就把主函数封装一下,当达到一行的最大长度就退出。
//split thai max length. add by yrui 20050428
//which 主从机
//in 需匹配的字符串
//width 匹配的最大象素宽度
//return 最适合width的字节长度
int Split_Thai(int which,unsigned char *in,int width)
{
}
记得字符超过了一行还要退回来哟。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)