分享
 
 
 

根据汉字查拼音(由arcow提供的代码改编 VB Just for fun)

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

'*************************************************************************

'**函 数 名:gGetPinYin

'**输 入:ByVal intHanZiAsc(Integer) -汉字的ASCII码,用ASC函数取得

'**输 出:(String) -一个拼音字符串

'**功能描述:输入一个汉字,输出一个拼音

'**全局变量:

'**调用模块:

'**作 者:wild

'**日 期:2004-10-06

'**修 改 人:

'**日 期:

'**版 本:V1.1.78

'*************************************************************************

Public Function gGetPinYin(ByVal strHanZi As String) As String

Dim objPinYinDic As Variant

Set objPinYinDic = CreateObject("Scripting.Dictionary")

objPinYinDic.Add "a", -20319

objPinYinDic.Add "ai", -20317

objPinYinDic.Add "an", -20304

objPinYinDic.Add "ang", -20295

objPinYinDic.Add "ao", -20292

objPinYinDic.Add "ba", -20283

objPinYinDic.Add "bai", -20265

objPinYinDic.Add "ban", -20257

objPinYinDic.Add "bang", -20242

objPinYinDic.Add "bao", -20230

objPinYinDic.Add "bei", -20051

objPinYinDic.Add "ben", -20036

objPinYinDic.Add "beng", -20032

objPinYinDic.Add "bi", -20026

objPinYinDic.Add "bian", -20002

objPinYinDic.Add "biao", -19990

objPinYinDic.Add "bie", -19986

objPinYinDic.Add "bin", -19982

objPinYinDic.Add "bing", -19976

objPinYinDic.Add "bo", -19805

objPinYinDic.Add "bu", -19784

objPinYinDic.Add "ca", -19775

objPinYinDic.Add "cai", -19774

objPinYinDic.Add "can", -19763

objPinYinDic.Add "cang", -19756

objPinYinDic.Add "cao", -19751

objPinYinDic.Add "ce", -19746

objPinYinDic.Add "ceng", -19741

objPinYinDic.Add "cha", -19739

objPinYinDic.Add "chai", -19728

objPinYinDic.Add "chan", -19725

objPinYinDic.Add "chang", -19715

objPinYinDic.Add "chao", -19540

objPinYinDic.Add "che", -19531

objPinYinDic.Add "chen", -19525

objPinYinDic.Add "cheng", -19515

objPinYinDic.Add "chi", -19500

objPinYinDic.Add "chong", -19484

objPinYinDic.Add "chou", -19479

objPinYinDic.Add "chu", -19467

objPinYinDic.Add "chuai", -19289

objPinYinDic.Add "chuan", -19288

objPinYinDic.Add "chuang", -19281

objPinYinDic.Add "chui", -19275

objPinYinDic.Add "chun", -19270

objPinYinDic.Add "chuo", -19263

objPinYinDic.Add "ci", -19261

objPinYinDic.Add "cong", -19249

objPinYinDic.Add "cou", -19243

objPinYinDic.Add "cu", -19242

objPinYinDic.Add "cuan", -19238

objPinYinDic.Add "cui", -19235

objPinYinDic.Add "cun", -19227

objPinYinDic.Add "cuo", -19224

objPinYinDic.Add "da", -19218

objPinYinDic.Add "dai", -19212

objPinYinDic.Add "dan", -19038

objPinYinDic.Add "dang", -19023

objPinYinDic.Add "dao", -19018

objPinYinDic.Add "de", -19006

objPinYinDic.Add "deng", -19003

objPinYinDic.Add "di", -18996

objPinYinDic.Add "dian", -18977

objPinYinDic.Add "diao", -18961

objPinYinDic.Add "die", -18952

objPinYinDic.Add "ding", -18783

objPinYinDic.Add "diu", -18774

objPinYinDic.Add "dong", -18773

objPinYinDic.Add "dou", -18763

objPinYinDic.Add "du", -18756

objPinYinDic.Add "duan", -18741

objPinYinDic.Add "dui", -18735

objPinYinDic.Add "dun", -18731

objPinYinDic.Add "duo", -18722

objPinYinDic.Add "e", -18710

objPinYinDic.Add "en", -18697

objPinYinDic.Add "er", -18696

objPinYinDic.Add "fa", -18526

objPinYinDic.Add "fan", -18518

objPinYinDic.Add "fang", -18501

objPinYinDic.Add "fei", -18490

objPinYinDic.Add "fen", -18478

objPinYinDic.Add "feng", -18463

objPinYinDic.Add "fo", -18448

objPinYinDic.Add "fou", -18447

objPinYinDic.Add "fu", -18446

objPinYinDic.Add "ga", -18239

objPinYinDic.Add "gai", -18237

objPinYinDic.Add "gan", -18231

objPinYinDic.Add "gang", -18220

objPinYinDic.Add "gao", -18211

objPinYinDic.Add "ge", -18201

objPinYinDic.Add "gei", -18184

objPinYinDic.Add "gen", -18183

objPinYinDic.Add "geng", -18181

objPinYinDic.Add "gong", -18012

objPinYinDic.Add "gou", -17997

objPinYinDic.Add "gu", -17988

objPinYinDic.Add "gua", -17970

objPinYinDic.Add "guai", -17964

objPinYinDic.Add "guan", -17961

objPinYinDic.Add "guang", -17950

objPinYinDic.Add "gui", -17947

objPinYinDic.Add "gun", -17931

objPinYinDic.Add "guo", -17928

objPinYinDic.Add "ha", -17922

objPinYinDic.Add "hai", -17759

objPinYinDic.Add "han", -17752

objPinYinDic.Add "hang", -17733

objPinYinDic.Add "hao", -17730

objPinYinDic.Add "he", -17721

objPinYinDic.Add "hei", -17703

objPinYinDic.Add "hen", -17701

objPinYinDic.Add "heng", -17697

objPinYinDic.Add "hong", -17692

objPinYinDic.Add "hou", -17683

objPinYinDic.Add "hu", -17676

objPinYinDic.Add "hua", -17496

objPinYinDic.Add "huai", -17487

objPinYinDic.Add "huan", -17482

objPinYinDic.Add "huang", -17468

objPinYinDic.Add "hui", -17454

objPinYinDic.Add "hun", -17433

objPinYinDic.Add "huo", -17427

objPinYinDic.Add "ji", -17417

objPinYinDic.Add "jia", -17202

objPinYinDic.Add "jian", -17185

objPinYinDic.Add "jiang", -16983

objPinYinDic.Add "jiao", -16970

objPinYinDic.Add "jie", -16942

objPinYinDic.Add "jin", -16915

objPinYinDic.Add "jing", -16733

objPinYinDic.Add "jiong", -16708

objPinYinDic.Add "jiu", -16706

objPinYinDic.Add "ju", -16689

objPinYinDic.Add "juan", -16664

objPinYinDic.Add "jue", -16657

objPinYinDic.Add "jun", -16647

objPinYinDic.Add "ka", -16474

objPinYinDic.Add "kai", -16470

objPinYinDic.Add "kan", -16465

objPinYinDic.Add "kang", -16459

objPinYinDic.Add "kao", -16452

objPinYinDic.Add "ke", -16448

objPinYinDic.Add "ken", -16433

objPinYinDic.Add "keng", -16429

objPinYinDic.Add "kong", -16427

objPinYinDic.Add "kou", -16423

objPinYinDic.Add "ku", -16419

objPinYinDic.Add "kua", -16412

objPinYinDic.Add "kuai", -16407

objPinYinDic.Add "kuan", -16403

objPinYinDic.Add "kuang", -16401

objPinYinDic.Add "kui", -16393

objPinYinDic.Add "kun", -16220

objPinYinDic.Add "kuo", -16216

objPinYinDic.Add "la", -16212

objPinYinDic.Add "lai", -16205

objPinYinDic.Add "lan", -16202

objPinYinDic.Add "lang", -16187

objPinYinDic.Add "lao", -16180

objPinYinDic.Add "le", -16171

objPinYinDic.Add "lei", -16169

objPinYinDic.Add "leng", -16158

objPinYinDic.Add "li", -16155

objPinYinDic.Add "lia", -15959

objPinYinDic.Add "lian", -15958

objPinYinDic.Add "liang", -15944

objPinYinDic.Add "liao", -15933

objPinYinDic.Add "lie", -15920

objPinYinDic.Add "lin", -15915

objPinYinDic.Add "ling", -15903

objPinYinDic.Add "liu", -15889

objPinYinDic.Add "long", -15878

objPinYinDic.Add "lou", -15707

objPinYinDic.Add "lu", -15701

objPinYinDic.Add "lv", -15681

objPinYinDic.Add "luan", -15667

objPinYinDic.Add "lue", -15661

objPinYinDic.Add "lun", -15659

objPinYinDic.Add "luo", -15652

objPinYinDic.Add "ma", -15640

objPinYinDic.Add "mai", -15631

objPinYinDic.Add "man", -15625

objPinYinDic.Add "mang", -15454

objPinYinDic.Add "mao", -15448

objPinYinDic.Add "me", -15436

objPinYinDic.Add "mei", -15435

objPinYinDic.Add "men", -15419

objPinYinDic.Add "meng", -15416

objPinYinDic.Add "mi", -15408

objPinYinDic.Add "mian", -15394

objPinYinDic.Add "miao", -15385

objPinYinDic.Add "mie", -15377

objPinYinDic.Add "min", -15375

objPinYinDic.Add "ming", -15369

objPinYinDic.Add "miu", -15363

objPinYinDic.Add "mo", -15362

objPinYinDic.Add "mou", -15183

objPinYinDic.Add "mu", -15180

objPinYinDic.Add "na", -15165

objPinYinDic.Add "nai", -15158

objPinYinDic.Add "nan", -15153

objPinYinDic.Add "nang", -15150

objPinYinDic.Add "nao", -15149

objPinYinDic.Add "ne", -15144

objPinYinDic.Add "nei", -15143

objPinYinDic.Add "nen", -15141

objPinYinDic.Add "neng", -15140

objPinYinDic.Add "ni", -15139

objPinYinDic.Add "nian", -15128

objPinYinDic.Add "niang", -15121

objPinYinDic.Add "niao", -15119

objPinYinDic.Add "nie", -15117

objPinYinDic.Add "nin", -15110

objPinYinDic.Add "ning", -15109

objPinYinDic.Add "niu", -14941

objPinYinDic.Add "nong", -14937

objPinYinDic.Add "nu", -14933

objPinYinDic.Add "nv", -14930

objPinYinDic.Add "nuan", -14929

objPinYinDic.Add "nue", -14928

objPinYinDic.Add "nuo", -14926

objPinYinDic.Add "o", -14922

objPinYinDic.Add "ou", -14921

objPinYinDic.Add "pa", -14914

objPinYinDic.Add "pai", -14908

objPinYinDic.Add "pan", -14902

objPinYinDic.Add "pang", -14894

objPinYinDic.Add "pao", -14889

objPinYinDic.Add "pei", -14882

objPinYinDic.Add "pen", -14873

objPinYinDic.Add "peng", -14871

objPinYinDic.Add "pi", -14857

objPinYinDic.Add "pian", -14678

objPinYinDic.Add "piao", -14674

objPinYinDic.Add "pie", -14670

objPinYinDic.Add "pin", -14668

objPinYinDic.Add "ping", -14663

objPinYinDic.Add "po", -14654

objPinYinDic.Add "pu", -14645

objPinYinDic.Add "qi", -14630

objPinYinDic.Add "qia", -14594

objPinYinDic.Add "qian", -14429

objPinYinDic.Add "qiang", -14407

objPinYinDic.Add "qiao", -14399

objPinYinDic.Add "qie", -14384

objPinYinDic.Add "qin", -14379

objPinYinDic.Add "qing", -14368

objPinYinDic.Add "qiong", -14355

objPinYinDic.Add "qiu", -14353

objPinYinDic.Add "qu", -14345

objPinYinDic.Add "quan", -14170

objPinYinDic.Add "que", -14159

objPinYinDic.Add "qun", -14151

objPinYinDic.Add "ran", -14149

objPinYinDic.Add "rang", -14145

objPinYinDic.Add "rao", -14140

objPinYinDic.Add "re", -14137

objPinYinDic.Add "ren", -14135

objPinYinDic.Add "reng", -14125

objPinYinDic.Add "ri", -14123

objPinYinDic.Add "rong", -14122

objPinYinDic.Add "rou", -14112

objPinYinDic.Add "ru", -14109

objPinYinDic.Add "ruan", -14099

objPinYinDic.Add "rui", -14097

objPinYinDic.Add "run", -14094

objPinYinDic.Add "ruo", -14092

objPinYinDic.Add "sa", -14090

objPinYinDic.Add "sai", -14087

objPinYinDic.Add "san", -14083

objPinYinDic.Add "sang", -13917

objPinYinDic.Add "sao", -13914

objPinYinDic.Add "se", -13910

objPinYinDic.Add "sen", -13907

objPinYinDic.Add "seng", -13906

objPinYinDic.Add "sha", -13905

objPinYinDic.Add "shai", -13896

objPinYinDic.Add "shan", -13894

objPinYinDic.Add "shang", -13878

objPinYinDic.Add "shao", -13870

objPinYinDic.Add "she", -13859

objPinYinDic.Add "shen", -13847

objPinYinDic.Add "sheng", -13831

objPinYinDic.Add "shi", -13658

objPinYinDic.Add "shou", -13611

objPinYinDic.Add "shu", -13601

objPinYinDic.Add "shua", -13406

objPinYinDic.Add "shuai", -13404

objPinYinDic.Add "shuan", -13400

objPinYinDic.Add "shuang", -13398

objPinYinDic.Add "shui", -13395

objPinYinDic.Add "shun", -13391

objPinYinDic.Add "shuo", -13387

objPinYinDic.Add "si", -13383

objPinYinDic.Add "song", -13367

objPinYinDic.Add "sou", -13359

objPinYinDic.Add "su", -13356

objPinYinDic.Add "suan", -13343

objPinYinDic.Add "sui", -13340

objPinYinDic.Add "sun", -13329

objPinYinDic.Add "suo", -13326

objPinYinDic.Add "ta", -13318

objPinYinDic.Add "tai", -13147

objPinYinDic.Add "tan", -13138

objPinYinDic.Add "tang", -13120

objPinYinDic.Add "tao", -13107

objPinYinDic.Add "te", -13096

objPinYinDic.Add "teng", -13095

objPinYinDic.Add "ti", -13091

objPinYinDic.Add "tian", -13076

objPinYinDic.Add "tiao", -13068

objPinYinDic.Add "tie", -13063

objPinYinDic.Add "ting", -13060

objPinYinDic.Add "tong", -12888

objPinYinDic.Add "tou", -12875

objPinYinDic.Add "tu", -12871

objPinYinDic.Add "tuan", -12860

objPinYinDic.Add "tui", -12858

objPinYinDic.Add "tun", -12852

objPinYinDic.Add "tuo", -12849

objPinYinDic.Add "wa", -12838

objPinYinDic.Add "wai", -12831

objPinYinDic.Add "wan", -12829

objPinYinDic.Add "wang", -12812

objPinYinDic.Add "wei", -12802

objPinYinDic.Add "wen", -12607

objPinYinDic.Add "weng", -12597

objPinYinDic.Add "wo", -12594

objPinYinDic.Add "wu", -12585

objPinYinDic.Add "xi", -12556

objPinYinDic.Add "xia", -12359

objPinYinDic.Add "xian", -12346

objPinYinDic.Add "xiang", -12320

objPinYinDic.Add "xiao", -12300

objPinYinDic.Add "xie", -12120

objPinYinDic.Add "xin", -12099

objPinYinDic.Add "xing", -12089

objPinYinDic.Add "xiong", -12074

objPinYinDic.Add "xiu", -12067

objPinYinDic.Add "xu", -12058

objPinYinDic.Add "xuan", -12039

objPinYinDic.Add "xue", -11867

objPinYinDic.Add "xun", -11861

objPinYinDic.Add "ya", -11847

objPinYinDic.Add "yan", -11831

objPinYinDic.Add "yang", -11798

objPinYinDic.Add "yao", -11781

objPinYinDic.Add "ye", -11604

objPinYinDic.Add "yi", -11589

objPinYinDic.Add "yin", -11536

objPinYinDic.Add "ying", -11358

objPinYinDic.Add "yo", -11340

objPinYinDic.Add "yong", -11339

objPinYinDic.Add "you", -11324

objPinYinDic.Add "yu", -11303

objPinYinDic.Add "yuan", -11097

objPinYinDic.Add "yue", -11077

objPinYinDic.Add "yun", -11067

objPinYinDic.Add "za", -11055

objPinYinDic.Add "zai", -11052

objPinYinDic.Add "zan", -11045

objPinYinDic.Add "zang", -11041

objPinYinDic.Add "zao", -11038

objPinYinDic.Add "ze", -11024

objPinYinDic.Add "zei", -11020

objPinYinDic.Add "zen", -11019

objPinYinDic.Add "zeng", -11018

objPinYinDic.Add "zha", -11014

objPinYinDic.Add "zhai", -10838

objPinYinDic.Add "zhan", -10832

objPinYinDic.Add "zhang", -10815

objPinYinDic.Add "zhao", -10800

objPinYinDic.Add "zhe", -10790

objPinYinDic.Add "zhen", -10780

objPinYinDic.Add "zheng", -10764

objPinYinDic.Add "zhi", -10587

objPinYinDic.Add "zhong", -10544

objPinYinDic.Add "zhou", -10533

objPinYinDic.Add "zhu", -10519

objPinYinDic.Add "zhua", -10331

objPinYinDic.Add "zhuai", -10329

objPinYinDic.Add "zhuan", -10328

objPinYinDic.Add "zhuang", -10322

objPinYinDic.Add "zhui", -10315

objPinYinDic.Add "zhun", -10309

objPinYinDic.Add "zhuo", -10307

objPinYinDic.Add "zi", -10296

objPinYinDic.Add "zong", -10281

objPinYinDic.Add "zou", -10274

objPinYinDic.Add "zu", -10270

objPinYinDic.Add "zuan", -10262

objPinYinDic.Add "zui", -10260

objPinYinDic.Add "zun", -10256

objPinYinDic.Add "zuo", -10254

Dim arrPinYin As Variant

Dim arrPinYinCode As Variant

Dim i As Integer

Dim intIndex As Integer

Dim intHanZiAsc As Integer

Dim strResult As String

strResult = ""

For intIndex = 1 To Len(strHanZi)

intHanZiAsc = Asc(Mid(strHanZi, intIndex, 1))

If intHanZiAsc > 0 And intHanZiAsc < 160 Then

strResult = Chr(intHanZiAsc)

Else

If intHanZiAsc < -20319 Or intHanZiAsc > -10247 Then

strResult = strResult & ""

Else

arrPinYin = objPinYinDic.Items

arrPinYinCode = objPinYinDic.Keys

For i = objPinYinDic.Count - 1 To 0 Step -1

If arrPinYin(i) <= intHanZiAsc Then Exit For

Next

If i >= LBound(arrPinYin) And i <= UBound(arrPinYin) Then ''防止越界

strResult = strResult & arrPinYinCode(i)

Else

strResult = strResult & ""

End If

End If

End If

Next

gGetPinYin = strResult

End Function

问题有很多,我只是随便弄了一下,以后再修改

1.空字符串没有处理

2.标点符号没有处理

3.不支持只输出首字母

4.多音字无法分辩

5.字典难以维护,错了一个很难查出来,等我重新想个办法

6.先好好的弄懂,拼音的编码原理,再弄懂汉字的编码原理

7.感谢你,很有耐心的看完我罗嗦,如果你能完善,请告诉我,谢谢。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有