.net拼音五笔助记符的实现
来源:互联网 发布:相机软件snow 编辑:程序博客网 时间:2024/04/28 00:03
微软的VS提供了Microsoft.International.Converters.PinYinConverter;可以通过他实现汉字到拼音的转换,然而没有五笔的转换。因工作需要,增加了五笔的转换。具体代码如下其中五笔助记符需要字库“PinYinWuBi.dll”,需要的朋友可以到我的资源中下载
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using Microsoft.International.Converters.PinYinConverter;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace Soft.Lib
{
/// <summary>
/// 拼音五笔助记符
/// </summary>
public class PyConverter
{
/// <summary>
/// 获取拼音助记符
/// </summary>
/// <param name="chinese_text">要转换的字符串</param>
/// <param name="len">输出助记符字符串最大长度</param>
/// <returns></returns>
public static string ToPy(string chinese_text, int len)
{
string rlt = "";
char[] chrs = chinese_text.ToCharArray();
foreach (char x in chrs)
{
if (ChineseChar.IsValidChar(x))
{
rlt += new ChineseChar(x).Pinyins[0][0];
}
else
rlt += x;
}
if (rlt.Length > len)
return rlt.Substring(0, len);
else
return rlt;
}
static DataTable tableWBPY = null;
static object Lock = new object();
static private DataTable TableWBPY
{
get
{
if (tableWBPY == null)
{
lock (Lock)
{
byte[] myBD = File.ReadAllBytes(Path.GetFullPath("PinYinWuBi.dll"));
MemoryStream stream = new MemoryStream(myBD);
IFormatter format = new BinaryFormatter();
stream.Position = 0;
tableWBPY = (DataTable)format.Deserialize(stream);
}
}
return tableWBPY;
}
}
/// <summary>
/// 获取五笔助记符
/// </summary>
/// <param name="chinese_text">要转换的字符串</param>
/// <param name="len">输出助记符字符串最大长度</param>
/// <returns></returns>
public static string ToWb(string chinese_text, int len)
{
string ret = ""; //返回字符串
char[] chrs = chinese_text.ToCharArray();
try
{
foreach (char x in chrs)
{
DataRow[] rowF = TableWBPY.Select(string.Format("F1 = '{0}'", x));
if (rowF.Length != 0)
{
ret = ret + rowF[0]["f2"].ToString().Substring(0, 1).ToUpper();
}
else
{
ret = ret + x;
}
}
}
catch (Exception ex)
{
ret = "";
}
if (ret.Length > len)
return ret.Substring(0, len);
else
return ret;
}
}
}
- .net拼音五笔助记符的实现
- .net实现拼音检索
- 拼音筛选的实现
- .net/C# 实现汉字到拼音转换
- Asp.net 实现汉字转化为拼音
- 汉字转拼音的实现
- ASP.NET中通过文本框的输入实现"拼音码"动态查询的效果
- 在ASP.NET,如何实现按拼音检查的下拉框?
- Delphi实现数据库的拼音查询(将汉字->拼音)
- ASP.NET获取汉字拼音的首字母
- ASP.NET获取汉字拼音的首字母
- 在asp.net中怎么实现拼音码查询
- asp.net 汉字转换拼音及首字母实现代码
- 实现汉字到拼音的转换
- java实现汉字转拼音的功能
- 简单实现汉字向拼音的转换
- Mysql中文汉字转拼音的实现
- 一种拼音分词器的JAVA实现
- Linux 网卡配置文件及相关设置
- 哀悼雅虎相册
- Make命令出错原因归纳
- 生活万花筒
- 手型图标显示兼容解决
- .net拼音五笔助记符的实现
- js——div层的隐藏实例(转载)
- rap 是否支持 gef
- CSS清除浮动常用方法小结
- Java外部执行操作系统命令(Java 创建本地系统进程)
- [Warald 美国职业谈] 读了博士phd有什么出路?
- mysql从一个表提取数据更新另外一个表(Cross Table Update with MySQL)
- CSDN 小秘书免责声明
- Windows 内存结构体系(读书笔记)