利用小键盘输入汉字的思路与实现[1].pdf_第1页
利用小键盘输入汉字的思路与实现[1].pdf_第2页
利用小键盘输入汉字的思路与实现[1].pdf_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2 7 卷 Vo1 27 第 5 期 NO 5 计算机工程与设计 Co mp u r En g i n e e r i n g a n d De s i g n 2 0 0 6 年3 月 M a r 2 0 0 6 利用小键盘输入汉字的思路与实现 蔡昭权 惠州学院 网络中心 广东 惠州 5 1 6 0 1 5 摘要 通过对汉字输入法录入形式的比较 以及对汉字输入法特征及数字键的分析 提 出利用数字小键盘实现汉字输入技 术的思路和办法 并用c语言实现 达到数字键也能方便输入汉字的效果 并能应用于各种具有数字小键盘设备的汉字输入 关键词 小键盘 输入法 C语言 字库 汉字 中图法分类号 T P 3 l T P 3 l l 文献标识码 A 文章编号 1 0 0 0 7 0 2 4 2 0 0 6 0 5 0 9 0 8 0 3 S t u d y a n d i mp l e me n t a t i o n o f Ch i n e s e c h a r a c t e r i n p u t t e c h n o l o g y wi t h k e y p a d CAI Zh a o q u a n Ne t w o r k C e n t e r H u i z h o u U n i v e r s i t y H u i z h o u 5 1 6 0 1 5 C h i n a Ab s t r a c t Ba s e d o n c o mp a r i s o n a mo n g t h e d i ffe r e n t ty p e s o f Ch i n e s e c h a r a c t e r i n p u t me t h o d a n a l y s i s o n t h e c h ara c t e r i s t i c o f Ch i n e s e c h ara c t e r i n p u t me t h o d an d k e y p a d a n e w me t h o d f o r C h i n e s e c h ara c t e r i n p u t wi t h d i g i t a l k e yp a d wa s p r e s e n t e d an d t h e d e t a i l i mp l e me n tat i o n t h r o u g h C l ang u a g e wa s i n t r o d u c e Th i s n e w s o l u t i o n C an e a s e t h e i n p u t o f C h i n e s e c h ara c t e r o n l y wi th k e yp a d t h i s t e c h n o l o g y C an b e u s e f u l i n t h e c h ara c t e r i n p u t for a l l k i n d s o f e q u i p me n t s wi t h k e yp a d Ke y wa r d s k e yp a d i n p u t me t h o d C l angu a g e wo r d l i b r a r y Ch i n e s e c h ara c t e r l 引 言 作为一个普遍适用的输入法 不应该只可以在P C机上适 用 而应该适用于各种不同的设备 所以输入汉字的信息元 应该设定在 0 9的数字键范围之内 因为这些键在手写终端 上都有 并且是一个全球都可以理解的范围 另外 汉字数字 码的设计 应能覆盖 G B 2 3 1 2的汉字集 并且能向G B1 3 0 0 0 1 等大字符集扩充 同时还要遵循国家语委颁布的笔顺规范和 汉字部件规范 社会不仅需要重码率低 输入速度快 适合专 业人士使用的汉字输入法 更需要一种既能在计算机上使用 又能在只有数字小键盘设备 如手机 电话 遥控器等 上使用 的 适合大众使用的普及型汉字输入法 现在充斥市场的林林 总总的输入法中 大部分的是用采用大键盘输入方式 而利用 数字小键盘输入汉字的方式有更大的使用空间 小部分的输 入法虽然采用数字输入 但是在拆字和词组方面有很多的规 则需要记忆 严重影响输入法的推广 对于老年人和少年人尤 其不适应 为此 笔者想能不能用一种全新的汉字编码方式 使用者只需要知道如何写字 就可以很简单地实现用电脑打 字 不需 要记忆任何条 条框框 2 思 路 以上这种输入法应该满足下面几个方面的要求 1 从汉字的结构可以知道 汉字是由笔画和笔顺来决定 的 当用 笔画来拆 字的时候 由于 笔画象形方 面的差异 编码 难于确定 但是汉字的笔顺是比较固定的 并且规则也很简 单 就是从上到下 从左到右 先中间后两边的顺序 所以编 码应该按照笔顺作为主要规则 以笔画为辅助规则 2 符合由国家语委颁布的G F 3 0 0 1 汉字部件规范中规定 的部件及其拆分方法 它与学校识字教育有密切联系 便于学 生养成正确的笔画顺序习惯 3 快速上手 上手能用 软件智能化程度高 因为软件 的适用人群是全体大众 他们当中有的文化程度可能不高 没 有专业的计算机知识和操作知识 这就需要软件的操作一定 要简单 而且软件的智能化程度要高 呈现给用户看的只是一 个很简单的界面 方便用户的操作 4 软件应该有一定的辅助提示功能 输入汉字 无论如 何简单 肯定设计到拆字的算法 应该有一个简单的界面可以 给不 熟悉的用户 以简单 的提示 5 应该有一般输入法的辅助功能 例如自动排列汉字的顺 序 自动组成词组 具有快速输入功能 有万能匹配码 可以删除 错码 简单的输入标点符号 可以快速切换输入方式等功能 3 实 现 1 界面设计 在上面设想的基础上 我们采用电脑右侧的小键盘为输 入键盘 设计按键功能如图 1 所示 2 编 码 在界面的基础上 进行编码 从上面的分析知道 编码最 收稿日 期 2 0 0 5 0 2 2 2 作者简介 蔡昭权 a9 7 0 男 广东陆丰人 硕士生 讲师 研究方向为计算机网络应用等 9 0 8 维普资讯 图 1 小键盘功能分布 好以笔顺为主 我们在参考T 9 输入法的基础上 经过大量的编 码分析 以减少重码为基本思路 发现以任何一个汉字的前三 笔加最后一笔为编码时 汉字的重码较少 按键较少 并把汉 字的笔画分为点 撇 横 竖 捺和 4 个方向的折 如图 2 所示 当我们需要打汉字 文 的时候 我们先输入 文 字的第 笔 点 对应数字 2 然后输入 文 字 的第 二笔横 对应数字 4 再输 入第三笔撇 对应数字 1 最后一笔捺 对应数字3 就是顺序输 入 2 4 1 3 就可以输入 文 字 同样的输入方法适用所有的汉 字 比如 字 可以输入 2 7 5 4 如果要输入 编码 的 编 字 输 入 9 9 4 7 当然其中的重码是肯定有的 例如 结 和 绪 两个 字的编码都是9 9 4 4 那么当输入这个编码以后 所有的字都要 显示给用户选择 如果字超过9个的话 用翻页来实现 圈 圈 图 2 小键盘上数字键对应 的编码 3 代码 的实现 输入法程序 I ME 在Wi n d o w s 系统中是一个由操作系统 调用的D L L程序 当用户选择输入法的时候 操作系统将调 用注册表中的对应的DL L文件 所以在程序实现的时候 只 要写一个 D L L的入口程序 同时实现需要实现的接口 就可 以了 具体 的接 口请参阅微软 的输 入法接 口文件 I MM3 2 H 对此 有兴趣的读者可以查看相关的资料 我们这里只介绍字 库的编码格式 装载 卸载方法和其它的一些具体实现 1 字库的装载 操作 卸载 由微 软 的 D I 1Ma i n的入 口程 序 B OO L WI NA P I D l l Ma i n H I N s T A N C E h l n s t a n c e D WOR D d w C a l l R e a s o n L P V O I D l p R e s e r v e d 得知 当 d w C a l l R e a s o n的值为 D L L flR O C E S S A T T A C H的时候 操作系统调用此动态连接库 当值为D L L P R O C E S S D E T AC H的时候 操作系统卸载此动态连接库 在我们 的实现中 可 以把字库 的装载 和卸载放到 这里面去 实现 进 程附加的时候 我们将字库文件从硬盘装进内存 在用户的操 作过程中 动态修改字库 包括动态修改字的优先级 使用的 频率高的字优先出现 添加用户自定义词组等 当进程剥离 的时候 我们将修改后的字库序列化到硬盘 当下 一次用户 调用字库的时候 已经是修改后的字库了 如图3 图5 所示 l 开 始 I 将字库调入内存中 J 用户输入过程中 调 整字库的内容 l 退出时将调整后的字 库保存到硬盘 图 3 字库操作 实现基本流程 图 4 打开的流程 图 5释放 的流 程 2 字库编码和结构 由于计算机硬件的集成度越来越高 内存和硬盘已经不 是问题 在本输入法的设计上 为提高速度 没有加入压缩的 算法 下面列出C语言的几个常用结构类型 字结构 t y p e d e f s t r u c t t a g W DCODE DWO R D d w C o d e 本 输入法 中字 的编 码 WO R D n Wo r d 字 WOR D n R a t e 字出现 的频率 WD C OD E L P WDC OD E 词组结构 9 0 9 维普资讯 t y p e d e f s t r u c t t a g W DP HRAS E l o n g n L e n g t h 词组的长度 L P WDC OD E l p WDC o d e 见上面 的注 释 WD P H R AS E L P P H R AS E 索引结构 t y p e d e f s t r u e t t a g DI C 1 NDE X l o n g n P h l n d e x P HR AS E MA XL E N 词组的偏移位置 l o n g n P h C o u n t P H R AS E MAX L E N 词组 的数量 DI C I N DE X L P DI C I N DE X 文件头结构 t y p e d e f s t mc t t a g L I BF I L E HE ADE R D WOR D d wV e r i f y 文件标志 W 0RD wd M i n Ch a r 字库中可以输入的最小的值 在本输入法 中为 1 W ORD wd M a x C h a r 字库中可以输入的最大的值 在本输入法中为9 WO RD b Mo d i fi e d 是否有用户自定义词组 DWO RD d wB a s e Off s e t 词 组 的偏移 位置 DWO RD d wT o t a l C o u n t 词组的总数量 WORD wd R e s e r v e 保 留 待扩展 L I B F I L E H E AD E R L P L I B F I L E HE A DE R 字库结构 t y p e d e f s t r u c t t a g W OR DL I B RARY H AN DL E h F i l e Ma p 文件映射地址 L P BYT E l p Li b Ba s e 字典信 息 L P WDC O DE l p D i c B a s e 基本字典开始地址 L P WDC O D E l p T r a c k B a s e 自定义词组开始地址 L P D I C 1 ND E X l p D i c I n d e x 字典信息 当前词组开始地址 L P WDC O DE l p C u r B u 仟 e r 当前词组 开始 地址 l o n g n C u r L e n g t h 当前词组的长度 l o n g n C u r C o u n t 当前词组的数量 字典的结构 l o n g n Mi n P o s 最小编码 为 1 l o n g n Ma x P o s 最大输入编码为9 l o n g n He a d P o s 当前页 的头位置 l o n g n T a i l P o s 当前 页的 末位置 l o n g n H e a d L e n 当前页头词组的长度 l o n g n T a i l L e n 当前页尾词组的长度 WO R D L I B R AR Y L P L I B R AR Y 以上述结构为基础 将所有的字包括词组按照字 两字 词 3字词 4 字词 分类 然后将各 自的索引放到文件头 最后的空间中放置用户 自定义的词组 当用户输入代码 的时 候 先从 自定义空间中去查找 然后到相应的空间去找 并把 符合规定的列出来给用户选择 一 91 O一 3 自动组词的实现 当用户输入代码 但是没有这个词的时候 程序记录当前 的状态 然后将用户新组建的词放到WDP HR AS E结构中 保 存到字库的最后面 如图6所示 开始 根据 L P L ib r m y找到 白 定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论