文件名称:
2013年最完整的“汉字→拼音声母”处理pas单元 支持Delphi6 XE5
开发工具:
文件大小: 143kb
下载次数: 0
上传时间: 2014-09-06
详细说明: 转载的一位大虾的 非常好用 对于有用的人来说这个分值了 一起共享只为了多个下载通道 不敢少于他的分数 一 特点: 1 支持多音字 支持所有中国汉字 共20902个 包括难字 生僻字 广东白话字 繁体字等所有计算机能显示的全部汉字 例如:镕 啱 揾 叻 嘅 咁 門 長 發財 車 冇乜嘢 2 同时支持Unicode和ANSI字符集 3 支持Delphi6至DelphiXE系列的所有Delphi版本 最后一次测试是XE4 二 实现原理 Unicode : 1 根据汉字的编码规则 汉字在Unicode的编码范围为$4E00至$9FA5 即:19968至40869 共20902个汉字 2 对中国汉字字库中的每个汉字 扫描从互联网下载的较完整的拼音字库 找到每个汉字的全拼拼音 包括多音 一个汉字最多4种读音 并获取每个读音的声母 首字母 生成汉字声母字典文件 3 把声母字典文件中每个汉字的声母 按汉字字库的Unicode编码规则全部串在一起 由于一个汉字最多3种读音 有4种以上读音的 仅有"竓qfzygs 竕sfzyg 竡yg sb"三个生僻字 仅取前三个读音 为每个汉字预留3个字节空间 生成Unicode汉字声母表 如本单元所定义的PartUnicode常量 4 查找原理:要查找一个汉字在声母表中的对应位置 应使用以下公式计算得: 汉字声母索引 汉字Unicode编码 19968 3 + 1; 其中19968是指Unicode字符集中的第一个汉字位置; 3表示每个汉字预留的3个字节空间 三 实现原理 ANSI : 1 根据汉字的编码规则 第一字节为区码 纵向 第二字节为位码(横向) 第一字节的范围是129 254 共126种 其中161 169段存放各种标点符号 254段为无效汉字 真正有效段为129 160 170 253 共116种 第二字节的范围是64 254 其中127段为分隔符 不存在任何内容 真正有效段为64 126 128 254 共190种 排除无效字符及标点符号后 有效的汉字库分为三部分: 1 第一部分 区:129 160 位:64 254[除127] 32 190 6080 2 第二部分 区:170 253 位:64 160[除127] 区253位156 160留空 84 96 5 8059 3 第三部分 区:176 247 位:161 254 区215位250 254留空 72 94 5 6763 合计: 20902个汉字 2 按以上规则可生成三个部分的中国汉字字库 每个区码一行 每个位码一列 3 同二 2 4 同二 3 如本单元所定义的Part1 Part3常量 5 查找原理:要查找一个汉字在声母表中的对应位置 应使用以下公式计算得: 汉字声母索引 汉字区码 段落起始区码 位码长度 + 汉字位码 段落起始位码 3 + 1; 其中3表示每个汉字预留的3个字节空间 如汉字“啊” 其区位码分别是 176 161 根据上述第1点所定义 属于第三部分汉字 理应在常量Part3中查找 由于第三部分的位码范围是161 254 横向长度是94 即一行 一个区 有94个汉字 所以“啊”在Part3中的位置应该是: 176 176 94 + 161 161 3 + 1 1 即Part3[1] "a"; 四 更新历史: 1 10 9 8 由于全拼输入法的拼音库太过全面 有部分多音字的第一个拼音却不是常用的拼音 导致汉字转声母有时不准确 决定抛弃全拼输入法的拼音库 改为采用从互联网下载的较完整的拼音字库 重新生成汉字声母表 2 10 12 27 上一次更新时是在Excel中编辑文件的 在Excel内替换右括号" "为空时 "Jun1 "替换后会变成"1 Jun" Excel的奇怪现象 导致"军"字的声母变成数字"1" 类似的情况还有很多 本次更新全面修正此类问题 并且经检测发现99 9%以上的 多音字最多只有三个读音 仅"竓qfzygs 竕sfzyg 竡ygsb"三个生僻字有4种以上读音 故声母表全部由4个字节改为预留3个字节 上述三个僻字仅截取前三个读音的声母 3 12 2 14 之前的版本按常用程度分为五个级别 但却漏了 区:170 175 位:64 160 一段汉字 合计漏了6 96 576个汉字未处理 今改为按汉字编码 分布规则 划分为三个部分(三段) 共计20902个汉字 是迄今为止史上最完整的汉字字库 据此生成的Part1 Part2 Part3三个声母 常量也是最完整的汉字声母表 另外 从该版本起 开始支持Delphi2007 DelphiXE系列 4 13 9 13 针对Unicode的编码规则 生成全新的Unicode原生汉字声母表 放弃以前把String转换为AnsiString的方法 由于少了转换步骤 所以理论上 在Delphi2009 或更高版本 时算法速度更优更快 同时使用编译指令兼容Delphi6 2007的非UniCode开发环境 这部分保留以前的算法 ">转载的一位大虾的 非常好用 对于有用的人来说这个分值了 一起共享只为了多个下载通道 不敢少于他的分数 一 特点: 1 支持多音字 支持所有中国汉字 共20902个 包括难字 生僻字 广东白话字 繁体字等所有计 [更多] ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.