const ChinaCode: 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));
function GetHzPy(var Hz:String):String;
var
C1, Len1, C2: Integer;
ir : Word;
FResult : String;
begin
FResult := '';
C1 := 1;
Len1 := Length(Hz);
while (C1<=Len1) do
begin
if (ord(Hz[C1])>=160) and (ord(Hz[C1+1])>=160) then
begin
ir := (ord(Hz[C1])-160)*100 + ord(Hz[C1+1])-160;
C2 := 0;
while (C2<=26) do
begin
if (ir>=ChinaCode[C2,0]) and (ir<=ChinaCode[C2,1]) then
begin
FResult := FResult+UpCase(chr(C2+ord('a')));
break;
end;
C2 := C2 + 1;
end;
end;
C1 := C1 + 2;
end;
Result := FResult;
end;