自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (7)
  • 论坛 (15)
  • 收藏
  • 关注

原创 我错了,我应该一直坚持自己的领域!

做了几年的软件开发,中途因为某种原因不愿意再写代码,有三r

2014-08-22 09:21:34 186

2013年最完整的“汉字→拼音声母”处理pas单元 支持Delphi6 XE5

转载的一位大虾的 非常好用 对于有用的人来说这个分值了 一起共享只为了多个下载通道 不敢少于他的分数 一 特点: 1 支持多音字 支持所有中国汉字 共20902个 包括难字 生僻字 广东白话字 繁体字等所有计算机能显示的全部汉字 例如:镕 啱 揾 叻 嘅 咁 門 長 發財 車 冇乜嘢 2 同时支持Unicode和ANSI字符集 3 支持Delphi6至DelphiXE系列的所有Delphi版本 最后一次测试是XE4 二 实现原理 Unicode : 1 根据汉字的编码规则 汉字在Unicode的编码范围为$4E00至$9FA5 即:19968至40869 共20902个汉字 2 对中国汉字字库中的每个汉字 扫描从互联网下载的较完整的<GBK汉字各种编码汇总 xls>拼音字库 找到每个汉字的全拼拼音 包括多音 一个汉字最多4种读音 并获取每个读音的声母 首字母 生成汉字声母字典文件 3 把声母字典文件中每个汉字的声母 按汉字字库的Unicode编码规则全部串在一起 由于一个汉字最多3种读音 有4种以上读音的 仅有"竓qfzygs 竕sfzyg 竡ygsb"三个生僻字 仅取前三个读音 为每个汉字预留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 由于全拼输入法的拼音库太过全面 有部分多音字的第一个拼音却不是常用的拼音 导致汉字转声母有时不准确 决定抛弃全拼输入法的拼音库 改为采用从互联网下载的较完整的<GBK汉字各种编码汇总 xls>拼音字库 重新生成汉字声母表 2 10 12 27 上一次更新时是在Excel中编辑<GBK汉字各种编码汇总 xls>文件的 在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个 包括难字 生僻字 广东白话字 繁体字等所有计 [更多]

2014-09-06

Delphi2010语法手册

在其他地方找到的Delphi2010的语法手册,共享出来大家共同学习

2014-05-22

水木清华BBS精华

水木清华BBS精华,从别处收集的,共享出来!

2014-05-10

DBGrideh的使用说明,中文的

最近做项目,以前在网上下载的DBGrideh的中文使用说明,还是有些帮助的,分享给各位了@!

2014-05-03

dbgrideh中如何知道哪些行被选中

dbgrideh中如何知道哪些行被选中,前段时间用到了,个人认为有用!

2016-02-01

最新-归档文件整理规则.

做档案数字化好多年了,得不断关注这些,放到这里保存了,有兴趣的朋友就下了看看吧!

2016-01-14

D2010的语法手册

D2010可以说是Delphi除D7最稳定的了,一直在用

2016-01-14

关于PDF文件的编辑,请大神指教!

发表于 2015-11-14 最后回复 2017-01-31

怎样制作专用的文件查看工具?请指教!

发表于 2016-05-16 最后回复 2016-08-02

怎样制作专用的文件查看工具?请指教!

发表于 2016-05-11 最后回复 2016-05-22

求高手帮助,字母累加,感谢感谢!

发表于 2016-04-30 最后回复 2016-05-03

请大神指教,如何购买正版的SQL Server 数据库?

发表于 2016-02-01 最后回复 2016-03-22

DBGridEh实现类似于Excel的合计功能,请各位校验一下!

发表于 2015-02-10 最后回复 2015-08-05

dbgrideh,复制行,请大侠指教!

发表于 2015-07-05 最后回复 2015-07-14

哪位有视频播放器的开发经验,请指导一下!

发表于 2014-11-20 最后回复 2015-02-10

急,急,急,dbgirdeh自动适应列宽,数据显示慢!

发表于 2014-10-01 最后回复 2014-11-20

FastReport的分组问题!

发表于 2014-10-01 最后回复 2014-10-14

请教用delphi开发触摸屏查询系统的方法?

发表于 2014-08-06 最后回复 2014-10-01

讨论个问题,有兴趣的朋友进来聊聊,说说信息系统的统计模块!

发表于 2014-06-04 最后回复 2014-06-17

delphi开发中Dll的以一些问题,请大侠赐教

发表于 2014-05-07 最后回复 2014-06-04

50分奉上,如何将DLL中的form融合到主窗体的panel中

发表于 2014-04-26 最后回复 2014-05-05

求救!用delphi写一个简单的浏览器

发表于 2014-02-17 最后回复 2014-02-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除