请问有没有批量生成拼音码的方法?
例如:我想把要生成拼音码的汉字放在左边的memo里,点生成后,在右侧的memo里是每一行的拼音码。
例如:我想把要生成拼音码的汉字放在左边的memo里,点生成后,在右侧的memo里是每一行的拼音码。
解决方案 »
- delphi 2009中如何创建Windows Forms Application?
- CSDN怎么越改越丑了?有同感的请回帖
- 用QuickRep做报表打印当QRDBText设成自动换行时出现问题,请问是什么原因?急...好像在网上没人解决,有点难度
- 兄弟姐妹们帮帮忙啊!
- *********简单问题 如何在程序里模拟实现ctrl+v************
- 关于4字节符号整数的问题
- 怎样导出数据?在线等候回答
- 各位大哥 ,谁知道<<delphi 5开发人员指南>>的配套光盘在哪下载??
- 再问,查找字段的难题,谢谢,关注有分
- tikkypeng(千两狂死郎)快看!给你50分!!!!!!!!!!!
- 我的delphi6不出提示了!!
- 求救!!!!!!!!如何在delphi7下安装delphix
-----------------------------
function GetHzPy(const AHzStr: string): string;
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));
var
i, j, HzOrd: integer;
Hz: string[2];
begin
i := 1;
while i <= Length(AHzStr) do
begin
if (AHzStr[i] >= #160) and (AHzStr[i + 1] >= #160) then
begin
HzOrd := (Ord(AHzStr[i]) - 160) * 100 + Ord(AHzStr[i + 1]) - 160;
for j := 0 to 25 do
begin
if (HzOrd >= ChinaCode[j][0]) and (HzOrd <= ChinaCode[j][1]) then
begin
Result := Result + char(byte('A') + j);
break;
end;
end;
Inc(i);
end else Result := Result + AHzStr[i];
Inc(i);
end;
end;调用:
---------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := GetHzPy(Edit1.Text);
end;//delphi6 下测试通过