社区
C#
帖子详情
急求可以将汉字转化为拼音首字母的程序代码,
losenetway
2004-04-06 02:51:07
大家一般是怎么解决这种问题的呢?
我现在要做一个从用户名称获得用户拼音首字母的功能,
大家有什么好办法啊。
...全文
449
27
打赏
收藏
急求可以将汉字转化为拼音首字母的程序代码,
大家一般是怎么解决这种问题的呢? 我现在要做一个从用户名称获得用户拼音首字母的功能, 大家有什么好办法啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
李洪喜
2004-04-20
打赏
举报
回复
水晶的代码不错,应该得90分。
chenlixin007
2004-04-08
打赏
举报
回复
GOOD!!!
happydayandday
2004-04-08
打赏
举报
回复
顶
常修溢
2004-04-08
打赏
举报
回复
学习
qazsw
2004-04-08
打赏
举报
回复
up
tongcheng
2004-04-08
打赏
举报
回复
强
但想问主要用在什么功能中呀?
bborn
2004-04-08
打赏
举报
回复
顶 强 收藏!!!
qiume
2004-04-08
打赏
举报
回复
好东西,俺收藏
烤火的鱼
2004-04-08
打赏
举报
回复
如果软件用不到数据库(这类软件好象很少吧),你也可以将拼音首字母放到一个文件中,由于一个汉字对应一个字母,规律性非常强,排序后用一个简单的二分法查找是非常快的,如果你的C++学得不错,且汉字研究有一定造诣,还可以利用位操作将拼音首字母和汉字合并放到2~3个字节中,既加快速度,又节约空间,不过,现在计算机磁盘和速度都比较满意,做这些小技巧没有必要了。
烤火的鱼
2004-04-08
打赏
举报
回复
另外,如果要GBK的(一般用不着),我也可以提供,但没有整理规范,自己再处理一下就可以了,也放在ftp://qydn.vicp.net用,名字为gbk.txt。
烤火的鱼
2004-04-08
打赏
举报
回复
搞那么复杂干什么,将国标汉字全部整理出来,放到数据库表中,自己查询好了,我已经弄好了,放在ftp://qydn.vicp.net中,是一个excel表,我的查询代码如下:
/// <summary>
/// 根据名称自动生成简写
/// </summary>
/// <param name="strName">中文名称</param>
/// <returns>该中文名称的拼音首字母组合</returns>
public static string GetNameSimple(string strName)
{
string strSimple="";
strName=strName.Trim();
string strSql="select 首字母 from 拼音首字母 where 汉字='";
string strValue="";
//有字符
if(strName.Length>0)
{
foreach(char word in strName)
{
strValue=Tools.GetAStrValue(strSql+word.ToString()+"'");
if(strValue.Length>0)//找到
strSimple+=strValue;
else //否则用自己代替,如本身就是英文字母
strSimple+=word.ToString();
}
}
return strSimple;
}
yong427
2004-04-07
打赏
举报
回复
在那里对输入的汉字查找它对应的拼音
用c:\winnt\system32\imeGen.exe输入法生成器的逆转换功能把
c:\winnt\system32\winpy.mb生成相应的文本对照表winpy.txt, 用的时候就是查找每个汉字/词组
对应的拼音, 把各拼音连接成字符串, 赋给另一个TextBox
取出来的拼音并不一定完全正确, 应该让用户可以修改
如果你有拼音和汉字的对应表的话,可以在客户端用JavaScript实现。具体方法是,在TextBox1的OnKeyUp事件中判断TextBox1是否已经输入一个完整汉字,如果是则到拼音对应表中查拼音显示在TextBox2中。
如果你有拼音和汉字的对应表的话,可以在客户端用JavaScript实现。具体方法是,在TextBox1的OnKeyUp事件中判断TextBox1是否已经输入一个完整汉字,如果是则到拼音对应表中查拼音显示在TextBox2中。
try
{
for(int i =0;i<textBox1.Text.Length;i++)
{
StreamReader srReadLine = new StreamReader((System.IO.Stream)File.OpenRead("WINPY1.TXT"),System.Text.UnicodeEncoding.Default);
srReadLine.BaseStream.Seek(0, SeekOrigin.Begin);
do
{ string strTem = srReadLine.ReadLine();
if(textBox1.Text.Substring(i,1) == strTem.Substring(0,1))
{
int m = strTem.Length-1;
MessageBox.Show("",strTem);
richTextBox1.Text += strTem.Substring(1,m);
break;
}
}
while((srReadLine.Peek() > -1));
srReadLine.Close();
}
}
catch(Exception en)
{
throw(en);
}
losenetway
2004-04-07
打赏
举报
回复
to: turnmissile
有那个表的数据么?
我现在需要的是这个表的数据,
有多少个数据呢?
Aglie
2004-04-06
打赏
举报
回复
Mark
qozm
2004-04-06
打赏
举报
回复
很好,学习
turnmissile
2004-04-06
打赏
举报
回复
//这里有个sample将所有国标汉字的拼音首字母取出来,放到一个表中,然后查出。你可以借鉴一下:
public string Getpingyin(string strName,System.Data.OleDb.OleDbConnection con,System.Data.SqlClient.SqlConnection sqlcon)
{
System.Data.SqlClient.SqlDataAdapter sqlda;
System.Data.OleDb.OleDbDataAdapter oleda;
string strSimple="";
strName=strName.Trim();
System.Data.DataSet myDataSet=new System.Data.DataSet();
if(strName.Length>0)
{
for(int num=0;num<strName.Length;num++)//不准用户输入非汉字
if(Convert.ToInt32(strName[num])<=255)
{
System.Windows.Forms.MessageBox.Show("你输入的字符\" "+strName[num].ToString()+"\"不是汉字,请更正","错误",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Stop);
return "";
}
string strSql="select 汉字,首字母 from 拼音首字母";
string strWhere=" where 汉字='"+strName[0].ToString()+"'"; //查询汉字,与字母的SQL
for(int i=1;i<strName.Length;i++)
{
strWhere+=" or 汉字='"+strName[i].ToString()+"'";
}
strSql+=strWhere;
if(con!=null)//看用户是用那个名字空间类.
{
oleda=new System.Data.OleDb.OleDbDataAdapter(strSql,con);
oleda.Fill(myDataSet,"拼音首字母");
}
else
{
sqlda=new System.Data.SqlClient.SqlDataAdapter(strSql,sqlcon);
sqlda.Fill(myDataSet,"拼音首字母");
}
for(int j=0;j<strName.Length;j++)//按汉字顺序找出相关的字母.
{
for(int k=0;k<myDataSet.Tables["拼音首字母"].Rows.Count;k++)
{
if(strName[j].ToString()==myDataSet.Tables["拼音首字母"].Rows[k]["汉字"].ToString())
{
strSimple+=myDataSet.Tables["拼音首字母"].Rows[k]["首字母"].ToString();
break;
}
}
}
myDataSet.Clear();
return strSimple;//得到字母
}
return "";
}
//用法例子
//OleDbConnection con=new .........;
//Getpingyin("我",con,null);返回w
wangsaokui
2004-04-06
打赏
举报
回复
低头拜读,厉害(耐性......)
losenetway
2004-04-06
打赏
举报
回复
我想采用将汉字一个一个的保存在数据库中的方法,同时保存他们的拼音,解析好的首字母,
然后在用的过程中让用户去维护那些太生的字,
但是我需要一个基础库,我用了 输入法生成器 来逆转换一个马表文件来获得拼音,
只是WINPY.MB 中的汉字太少了,
大家有没有好一点的马表文件呢?
紫光的 字 很多的,但是他的马表文件在哪里呢?
xuzuning
2004-04-06
打赏
举报
回复
除 yzh0523(水手) 的可以处理二级字库外都只适用一级字库
那么gbk扩展的部分呢?异音字呢?
CMIC
2004-04-06
打赏
举报
回复
http://www.csdn.net/Develop/Read_Article.asp?Id=25731
http://www.csdn.net/Develop/Read_Article.asp?Id=25536
加载更多回复(7)
急求
一个VB密码输入的验证程序编写代码.txt
急求
一个VB密码输入的验证程序编写代码.txt
急求
lorenz系统的追踪控制的matlab源程序-单向耦合网络连接的Lorenz系统的追踪控制.pdf
急求
lorenz系统的追踪控制的matlab源程序-单向耦合网络连接的Lorenz系统的追踪控制.pdf 单向耦合网络连接的Lorenz系统的追踪控制.pdf 论文
360断网
急求
箱
独立版360断网
急求
箱,不用安装360安全卫士,可独立运行 断网修复工具
急求
医疗废物管理整改报告.doc
急求
医疗废物管理整改报告.doc
急求
学生会监察部工作计划!.doc
急求
学生会监察部工作计划!.doc
C#
110,532
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章