凤
凤冠坡
Unregistered / Unconfirmed
GUEST, unregistred user!
本论坛发布的其他解决方案不是不足就是不能解决问题,
而且让人看了也不明白是什么回事,本人采取直接取微软的
拼音编码库的方法来实现这一功能,而且方法简单:
微软的拼音字库编码是:汉字1的拼音,汉字2的拼音,汉字3的拼音,....
也就是只列出单个汉字的拼音,那么就要求对应汉字必须是
有序的,什么汉字才有序呢,UniCode 字符集就是。
在 Delphi 里,就是WideChar和WideString.
WideChar(19966 + 1)就对于汉字“一”;
WideChar(19966 + 2)就对于汉字“丁”;
WideChar(19966 + 3)就对于汉字“丂”;
......................
WideChar(19966 + 20901)就对于汉字“龤”;//可能有误差
WideChar(19966 + 20902)就对于汉字“龥”;//可能有误差
把这20902个汉字的拼音放到数据库 WinPY.MB 里面就是微软
拼音输入法的基础。拼音自从 WinPY.MB 文件偏移 $3B0A 起
每个字的拼音占用 12 个WideChar,即 24 字节,连续排放。
很容易写一小段程序实现汉字对应拼音首字母。
本人正在写,大概2小时后可以完成,需要的请尽快。
该功能有2个方法实现,一种是完全内存模式,一种是数据库
存放拼音首字母模式(供以后快速调用)。
而且让人看了也不明白是什么回事,本人采取直接取微软的
拼音编码库的方法来实现这一功能,而且方法简单:
微软的拼音字库编码是:汉字1的拼音,汉字2的拼音,汉字3的拼音,....
也就是只列出单个汉字的拼音,那么就要求对应汉字必须是
有序的,什么汉字才有序呢,UniCode 字符集就是。
在 Delphi 里,就是WideChar和WideString.
WideChar(19966 + 1)就对于汉字“一”;
WideChar(19966 + 2)就对于汉字“丁”;
WideChar(19966 + 3)就对于汉字“丂”;
......................
WideChar(19966 + 20901)就对于汉字“龤”;//可能有误差
WideChar(19966 + 20902)就对于汉字“龥”;//可能有误差
把这20902个汉字的拼音放到数据库 WinPY.MB 里面就是微软
拼音输入法的基础。拼音自从 WinPY.MB 文件偏移 $3B0A 起
每个字的拼音占用 12 个WideChar,即 24 字节,连续排放。
很容易写一小段程序实现汉字对应拼音首字母。
本人正在写,大概2小时后可以完成,需要的请尽快。
该功能有2个方法实现,一种是完全内存模式,一种是数据库
存放拼音首字母模式(供以后快速调用)。