function GetPyChar(
const HZ: AnsiString):
string;
const
HZCode:
array[
0
..
25
,
0
..
1
]
of Integer = ((
1601
,
1636
), (
1637
,
1832
), (
1833
,
2077
),
(
2078
,
2273
), (
2274
,
2301
), (
2302
,
2432
), (
2433
,
2593
), (
2594
,
2786
), (
9999
,
0000
),
(
2787
,
3105
), (
3106
,
3211
), (
3212
,
3471
), (
3472
,
3634
), (
3635
,
3722
), (
3723
,
3729
),
(
3730
,
3857
), (
3858
,
4026
), (
4027
,
4085
), (
4086
,
4389
), (
4390
,
4557
), (
9999
,
0000
),
(
9999
,
0000
), (
4558
,
4683
), (
4684
,
4924
), (
4925
,
5248
), (
5249
,
5589
));
var
i,j,HzOrd: Integer;
begin
i :=
1
;
while i <= Length(HZ)
do
begin
if (HZ[i] >=
#160
)
and (HZ[i +
1
] >=
#160
)
then
begin
HzOrd := (Ord(HZ[i]) -
160
) *
100
+ Ord(HZ[i +
1
]) -
160
;
for j :=
0
to
25
do
begin
if (HzOrd >= HZCode[j][
0
])
and (HzOrd <= HZCode[j][
1
])
then
begin
Result := Result + Char(Byte(
'A'
) + j);
Break;
end;
end;
Inc(i);
end
else Result := Result + HZ[i];
Inc(i);
end;
end;
//测试:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetPyChar(
'万一的 Delphi 博客'
));
//结果:WYD Delphi BK
end;
//只单独汉字:
function GetPyFitstChar(HZ: AnsiString): Char;
begin
case LoWord(HZ[
1
])
shl
8
+ LoWord(HZ[
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;
end;
//测试:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetPyFitstChar(
'万一的 Delphi 博客'
));
//结果:W
end;