我在一个Edit里面输入了几个汉字!
现在我想在另个Edit里面把每个汉字的拼音的第一个字符显示出来该怎么搞啊》?
现在我想在另个Edit里面把每个汉字的拼音的第一个字符显示出来该怎么搞啊》?
解决方案 »
- sql表最后一条数据
- 怎样取得点击cxGrid的列号,我想取得点格子是内容,知道列号就知道格子的内容了
- 如何取MainMenu的子菜单项
- 能否把控件的名称定义为数组 或变量
- delphi引用.net的webservice时,传递的参数为中文时,中文就变成了乱码??
- !紧急求助:小弟在装Delphi7时proide70.bpl文件怎么也读不出,上网下载未果。只好求助各位大侠,如手头有delphi7,如能发至[email protected]
- 只有.dcu文件的控件如何安装?
- 关于一个ado 连接数据库问题,我用的是sql server 数据库
- 关于object pascal的问题
- 高分求高手关于TEXRICHEDIT的一个问题
- 使用SHFileOperation复制文件,不想文件进度窗口老是出现在最前面,有没办法解决?
- 菜鸟的通讯问题
/////////////////////////////////////////////////////////////////////////////// FileName: PY.pas//// Copyright (C) 1999 By Zhang Qing//// You can use and modify it ,but please send me an email.//// E-Mail: [email protected]/////////////////////////////////////////////////////////////////////////////unit PY;
interfaceuses sysutils;
// 获取汉字的拼音首字符 ,这个函数将用在 GetPYIndexStr 中 .function GetPYIndexChar(strChinese: string; bUpCase: Boolean = True): char;
// 获取多个汉字的拼音首字符组成的字符串 .function GetPYIndexStr(strChinese: string; bUpCase: Boolean = True): string;
implementation
////////////////////////////////////////////////////////////////////////////// 函数 : GetPYIndexChar(strChinese: string;bUpCase: Boolean = True): char;//// 函数功能 : 获取汉字的拼音首字符 .// 例 : GetPYIndexChar(' 程 ') 将返回 'C'.//// 注意 : 对于多于一个汉字的输入 (string 类型 ) 只有第一个有效 ,但不会产生错误 // 例如 ,GetPYIndexChar(' 程序 ') 也将返回 'C'.//// 第二个参数决定返回大写还是小写 , 缺省为大写 .////////////////////////////////////////////////////////////////////////////function GetPYIndexChar(strChinese: string;bUpCase: Boolean = True): char;begin// 根据汉字表中拼音首字符分别为 "A" 至 "Z" 的汉字内码范围 ,// 要检索的汉字只需要检查它的内码位于哪一个首字符的范围内 ,// 就可以判断出它的拼音首字符。 case WORD(strChinese[1]) shl 8 + WORD(strChinese[2]) of $B0A1..$B0C4 : result := 'A'; $B0C5..$B2C0 : result := 'B'; $B2C1..$B4ED : result := 'C'; $B4EE..$B6E9 : result := 'D'; $B6EA..$B7A1 : result := 'E'; $B7A2..$B8C0 : result := 'F'; $B8C1..$B9FD : result := 'G'; $B9FE..$BBF6 : result := 'H'; $BBF7..$BFA5 : result := 'J'; $BFA6..$C0AB : result := 'K'; $C0AC..$C2E7 : result := 'L'; $C2E8..$C4C2 : result := 'M'; $C4C3..$C5B5 : result := 'N'; $C5B6..$C5BD : result := 'O'; $C5BE..$C6D9 : result := 'P'; $C6DA..$C8BA : result := 'Q'; $C8BB..$C8F5 : result := 'R'; $C8F6..$CBF9 : result := 'S'; $CBFA..$CDD9 : result := 'T'; $CDDA..$CEF3 : result := 'W'; $CEF4..$D188 : result := 'X'; $D1B9..$D4D0 : result := 'Y'; $D4D1..$D7F9 : result := 'Z'; else result := char(0); end; if not bUpCase then begin // 转换为小写 result := Chr(Ord(result)+32); end;end;
////////////////////////////////////////////////////////////////////////////// 函数 : GetPYIndexStr(strChinese: string;bUpCase: Boolean = True): string;//// 函数功能 : 获取多个汉字的拼音首字符组成的字符串 .// 例 : GetPYIndexStr(' 程 ') 将返回 'C'.// GetPYIndexStr(' 程序 ') 将返回 'CX'.//// 第二个参数决定返回大写还是小写 , 缺省为大写 .////////////////////////////////////////////////////////////////////////////function GetPYIndexStr(strChinese: string;bUpCase: Boolean = True): string;var strChineseTemp : string; cTemp : Char;begin result := ''; strChineseTemp := strChinese; while strChineseTemp<>'' do begin cTemp := GetPYIndexChar(strChineseTemp); if not bUpCase then begin // 转换为小写 cTemp := Chr(Ord(cTemp)+32); end; result := result + string(cTemp); strChineseTemp := Copy(strChineseTemp,3,Length(strChineseTemp)); end;end;
end.