下面这个函数供参考,可以正常获取汉字全拼,但是效率不是最好的
//参数说明:AString要翻译的字符串
//返回值中如果有非汉字存在原样取出
function StringtoPY(AString: string): string;
var
lStringList: TStringList;
I, lIndex: Integer;
lStr: string;
begin
lStringList := TStringList.Create;
try
lStringList.LoadFromFile(Business.System.JSCommon.ModulePath + 'PYCODE.DAT');
for I := 0 to lStringList.Count - 1 do
begin
lStr := lStringList.Strings[I];
lStringList.Strings[I] := lStr.Replace(StringUtils.Copy(lStr, 2, 5), '=');
end;
lStr := '';
for I := 1 to AString.Length do
begin
lIndex := lStringList.IndexOfName(StringUtils.Copy(AString, I, 1));
if lIndex <> -1 then
lStr := lStr + lStringList.Values[StringUtils.Copy(AString, I, 1)]
else
lStr := lStr + StringUtils.Copy(AString, I, 1);
end;
result := lStr;
finally
lStringList.Free;
end;
end; |