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


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

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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/31 12:03:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3361 积分:24802 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2019/7/31 12:23:00 [只看该作者]

点赞太给力了

 回到顶部
帅哥哟,离线,有人找我吗?
ycli368
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:998 积分:10453 威望:0 精华:0 注册:2012/12/11 14:25:00
  发帖心情 Post By:2019/7/31 13:13:00 [只看该作者]

给力

 回到顶部
帅哥哟,离线,有人找我吗?
YOU
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:395 积分:627 威望:0 精华:0 注册:2018/3/5 14:40:00
  发帖心情 Post By:2019/7/31 13:58:00 [只看该作者]

学习

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2019/7/31 14:27:00 [只看该作者]

mark

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2019/7/31 14:32:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
wjl-se
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2019/7/31 15:25:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
ahbzczy
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:268 积分:2307 威望:0 精华:0 注册:2010/3/26 14:08:00
  发帖心情 Post By:2019/7/31 16:38:00 [只看该作者]

实用!点赞!

另外一个建议,转换为金额大写的函数CUMoney函数,在将小于1元的角分金额转换为大写时,比如0.23元,中文是“零元贰角叁分”,银行不接受这种格式,要求是“贰角叁分”的格式。
[此贴子已经被作者于2019/7/31 16:44:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanzhang98
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/8/1 18:05:00 [只看该作者]

实用!学习1

 回到顶部
总数 14 1 2 下一页