获取一个汉字的拼音首字
点击次数:46 次 发布日期:2008-11-09 08:38:41 作者:源代码网
|
源代码网推荐 源代码网推荐 interface 源代码网推荐 uses 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”的汉字内码范围, 软件开发网 www.mscto.com 源代码网推荐 // 要检索的汉字只需要检查它的内码位于哪一个首字符的范围内, 源代码网推荐 // 就可以判断出它的拼音首字符。 源代码网推荐 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; 源代码网推荐 源代码网供稿. |
