lonlib.pas
来自「在Delphi中获取字符串拼音首码的函数库。」· PAS 代码 · 共 80 行
PAS
80 行
unit LonLib;
interface
uses Windows,SysUtils, Graphics,Classes,Forms,Controls,Dialogs,StdCtrls,Math
{$IFDEF VER140}
,Variants
{$ENDIF}
;
//判断是否汉字字符
function IsHz(c: Char): Boolean;
//获取汉字字符拼音首码
function GetHzSM(chhi,chlow: Char): Char;
//回去字符串拼音首码
function GetStrSM(S: string): string;
implementation
function IsHz(c: Char): Boolean;
begin
Result := Ord(c) >= $80;
end;
function GetHzSM(chhi,chlow: Char): Char;
begin
case WORD(chhi) shl 8 + WORD(chlow) 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;
end;
function GetStrSM(S: string): string;
var
l,p: Integer;
begin
Result := '';
l := Length(S);
if l = 0 then Exit;
p := 1;
while p <= l do
begin
if IsHz(S[p]) then
begin
Result := Result + GetHZSM(S[p],S[p + 1]);
Inc(p,2);
end else begin
Result := Result + S[p];
Inc(p,1);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?