设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3849|回复: 10
打印 上一主题 下一主题

[模块/函数] 中文字符串转化为拼音通用的函数[原码下载]

[复制链接]
跳转到指定楼层
1#
发表于 2002-7-2 00:40:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个模块结合了拼音库表,谢谢赵鹏提供的拼音库表。

[upload=gif]http://www.office-cn.net/vvb/uploadimages/20027116283389055.gif[/img]



文件下载  WINRAR3.0压缩





[此贴子已经被huanghai于2002-7-1 16:40:08编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-7-2 01:58:00 | 只看该作者
到此,拼音的问题应该完美解决了

点击这里给我发消息

3#
发表于 2002-7-2 03:19:00 | 只看该作者
只有一、二级汉字库![em26]
4#
 楼主| 发表于 2002-7-2 03:24:00 | 只看该作者
谁有汉字拼音库,拿出来造福大家吧。
5#
发表于 2002-7-2 05:57:00 | 只看该作者
这个汉子库比较全,我用在药品名上,许多奇怪,没见过的字都有,谢谢黄海的帮助
6#
发表于 2002-7-2 16:32:00 | 只看该作者
拼音字库可自己做,我在新手栏目中的一个例子有说明
7#
发表于 2002-7-27 15:20:00 | 只看该作者
碰到多音字就傻了眼
8#
发表于 2006-3-18 19:39:00 | 只看该作者
这应该是完整的计算机用简体字库,计算机用字符共6763个含标点符号数字英文字母,这个字库是6725个
9#
发表于 2006-3-19 07:14:00 | 只看该作者
谢谢黄海的帮助
10#
发表于 2006-3-20 21:23:00 | 只看该作者
这个函数不错。



最初我在accessqq上,也是原来楼主的的网站,看到一个函数,用了很长时间,后来发现不能认识“胡埭”(一个地名)的“埭”字。函数如下



Public Function HZ2PY(Tstr As String, Optional onlyFirst As Boolean) As String
    On Error GoTo err
    If onlyFirst Then Tstr = Left(Tstr, 1)
    Dim intTstrLong As Integer
    Dim strPY As String
    Dim i As Long, p As Integer
    For intTstrLong = 1 To Len(Tstr)
        i = Asc(Mid(Tstr, intTstrLong, 1))
        If i <= Asc("啊") Or i >= Asc("座") Then
            strPY = strPY & Mid(Tstr, intTstrLong, 1)
        Else
            If i >= Asc("啊") And i < Asc("芭") Then p = 65
            If i >= Asc("芭") And i < Asc("擦") Then p = 66
            If i >= Asc("擦") And i < Asc("搭") Then p = 67
            If i >= Asc("搭") And i < Asc("蛾") Then p = 68
            If i >= Asc("蛾") And i < Asc("发") Then p = 69
            If i >= Asc("发") And i < Asc("噶") Then p = 70
            If i >= Asc("噶") And i < Asc("哈") Then p = 71
            If i >= Asc("哈") And i < Asc("击") Then p = 72
            If i >= Asc("击") And i < Asc("喀") Then p = 74
            If i >= Asc("喀") And i < Asc("垃") Then p = 75
            If i >= Asc("垃") And i < Asc("妈") Then p = 76
            If i >= Asc("妈") And i < Asc("拿") Then p = 77
            If i >= Asc("拿") And i < Asc("哦") Then p = 78
            If i >= Asc("哦") And i < Asc("啪") Then p = 79
            If i >= Asc("啪") And i < Asc("欺") Then p = 80
            If i >= Asc("欺") And i < Asc("然") Then p = 81
            If i >= Asc("然") And i < Asc("撒") Then p = 82
            If i >= Asc("撒") And i < Asc("塌") Then p = 83
            If i >= Asc("塌") And i < Asc("挖") Then p = 84
            If i >= Asc("挖") And i < Asc("昔") Then p = 87
            If i >= Asc("昔") And i < Asc("压") Then p = 88
            If i >= Asc("压") And i < Asc("匝") Then p = 89
            If i >= Asc("匝") And i <= Asc("座") Then p = 90
            strPY = strPY & Chr(p)
        End If
    Next intTstrLong
    HZ2PY = strPY
    Exit Function
err:
    MsgBox err.Number & err.Description
End Function



再后来,看了trynew的一个作品,解决了“埭”字,但发现“金属”的“属”字,因为是多音字的原因,函数认为金属是jz,我要的是js。



再后来,看到f0217(好像是)提供了一个既可以查拼音又可以查笔画的函数,但发现“金属”的“属”字,还是不能正确识别,返回值还是jz。



今天看了这个函数,试试后,发现,OK。




但是,这个函数要配合“字库表”才行,这样就要在数据库中一直保存好这个表,表名也要保持一致,不能误删除。这个函数的缺点是,不是纯函数,很难在其他地方用,比如Excel中等。前两个函数是纯代码的函数。



从运行效率上比较(我的比较结果),纯函数要快很多很多。



未完




[此贴子已经被作者于2006-3-24 9:07:10编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 04:36 , Processed in 0.108153 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表