Foxtable(狐表)用户栏目专家坐堂 → 2019年8月1日更新,增加一个PY类,彻底解决汉字拼音转换问题。


  共有6439人关注过本帖树形打印复制链接

主题:2019年8月1日更新,增加一个PY类,彻底解决汉字拼音转换问题。

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47452 积分:251108 威望:0 精华:91 注册:2008/6/17 17:14:00
2019年8月1日更新,增加一个PY类,彻底解决汉字拼音转换问题。  发帖心情 Post By:2019/7/31 12:00:00 [显示全部帖子]

汉字与拼音


Foxtable提供了一个名为“PY”的类,用于获取汉字的拼音。

PY类提供的函数有:


GetPY函数


用于获取汉字的拼音,语法:

GetPY(Input)
GetPY(Input, TitleCase)
GetPY(Input, TitleCase, Mode)

Input: 字符型,汉字字符串。
TitleCase 逻辑型,是否返回首字母大写的拼音
Mode 整数型,用于设置返回拼音的格式,以汉字"我"为例,不同Mode值返回的拼音分别如下:
0:wo, 无声调
1:wo3,带数字声调
2:w?, 带声调
3:w, 仅返回拼音的首字母


示例

在命令窗口执行下面的代码:

Output.Show(PY.GetPY("我是狐表用户"))
Output
.Show(PY.GetPY("我是狐表用户", True))
Output
.Show(PY.GetPY("我是狐表用户", True, 1))
Output
.Show(PY.GetPY("我是狐表用户", True, 2))
Output
.Show(PY.GetPY("我是狐表用户", False, 2))
Output
.Show(PY.GetPY("我是狐表用户", True, 3))
Output
.Show(PY.GetPY("我是狐表用户", False, 3))

得到的结果为:

wo shi hu biao yong hu
Wo Shi Hu Biao Yong Hu
Wo3 Shi4 Hu2 Biao3 Yong4 Hu4
W? Shì Hú Bi?o Yòng Hù
w? shì hú bi?o yòng hù
WSHBYH
wshbyh


GetNamePY函数


用于获取汉字姓名的拼音,语法:

GetNamePY(Input)
GetNamePY(Input, TitleCase)
GetNamePY(Input, TitleCase, Mode)

Input: 字符型,姓名字符串。
TitleCase 逻辑型,是否返回首字母大写的拼音
Mode 整数型,用于设置返回拼音的格式,以汉字"我"为例,不同Mode值返回的拼音分别如下:
0:wo, 无声调
1:wo3,带数字声调
2:w?, 带声调
3:w, 仅返回拼音的首字母

GetNamePY和GetPY函数的用法完全一样,不同的是,GetNamePY会将第一个字符作为姓氏,以尽可能返回正确的拼音。

示例

在命令窗口执行下面的代码:

Output
.Show(PY.GetPY("覃波"))
Output
.Show(PY.GetPY("仇和"))
Output
.Show(PY.GetNamePY("覃波"))
Output
.Show(PY.GetNamePY("仇和"))

得到的结果为:

tan bo
chou he
qin bo
qiu he

可以看到GetNamePY函数得到了准确的姓名拼音,而GetPY得到的结果是错误的,因为其将"覃"和"仇"作为普通字符处理了,而不是作为姓氏。


IsHanzi函数


用于判断给定的字符是否是汉字,例如:

Output.Show(PY.IsHanzi("格"))  '结果为True
Output
.Show(PY.IsHanzi("A"))   '结果为False


拼音数据库


由于汉字有大量的多音字,所以不管我们如何设计,获取的拼音结果都很难满足所有用户的要求。
为解决此难题,Foxtable将拼音数据库公开给了用户,这样用户根据自己的需要修改任意汉字的拼音和声调。
在Foxtable的安装“pydb.mdb”的文件,这是一个access格式的数据库,里头包含了2万多个汉字的拼音,以及500多个姓氏的拼音,大家可以根据需要随意修改。

重要提示:修改之后拼音数据库之后,一定要记得备份,避免卸载或重装Foxtable的时候被无意删除或覆盖。

[此贴子已经被作者于2019/7/31 14:35:25编辑过]

 回到顶部