L
L.Q
Unregistered / Unconfirmed
GUEST, unregistred user!
下面是小弟写的数字转换成中文字符的程序,好像代码太多,请多位指点指点。
Function TForm1.IntChangChar(var IntStr:String):String;
var
NewStr,Str_dw:String;
iCount:integer;
Str_pj:Char;
begin
NewStr:='';
for iCount:=1 to length(IntStr) do
begin
Str_pj := IntStr[iCount];
case Str_pj of //把小写字符转换成大写字符
'0': Str_dw := '零';
'1': Str_dw := '壹';
'2': Str_dw := '贰';
'3': Str_dw := '叁';
'4': Str_dw := '肆';
'5': Str_dw := '伍';
'6': Str_dw := '陆';
'7': Str_dw := '柒';
'8': Str_dw := '捌';
'9': Str_dw := '玖';
'.': Str_dw := '点';
end;
case Length(IntStr) of
12:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 亿 ' ;
2: newstr:=newstr+Str_dw+' 千 ' ;
3: newstr:=newstr+Str_dw+' 百 ' ;
4: newstr:=newstr+Str_dw+' 十 ' ;
5: newstr:=newstr+Str_dw+' 万 ' ;
6: newstr:=newstr+Str_dw+' 千 ' ;
7: newstr:=newstr+Str_dw+' 百 ' ;
8: newstr:=newstr+Str_dw+' 十 ' ;
9: newstr:=newstr+Str_dw+' 圆 ' ;
10: newstr:=newstr+Str_dw+' ' ;
11: newstr:=newstr+Str_dw+' 角 ' ;
12: newstr:=newstr+Str_dw+' 分 ' ;
end;
11:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 千 ' ;
2: newstr:=newstr+Str_dw+' 百 ' ;
3: newstr:=newstr+Str_dw+' 十 ' ;
4: newstr:=newstr+Str_dw+' 万 ' ;
5: newstr:=newstr+Str_dw+' 千 ' ;
6: newstr:=newstr+Str_dw+' 百 ' ;
7: newstr:=newstr+Str_dw+' 十 ' ;
8: newstr:=newstr+Str_dw+' 圆 ' ;
9: newstr:=newstr+Str_dw+' ' ;
10: newstr:=newstr+Str_dw+' 角 ' ;
11: newstr:=newstr+Str_dw+' 分 ' ;
end;
10:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 百 ' ;
2: newstr:=newstr+Str_dw+' 十 ' ;
3: newstr:=newstr+Str_dw+' 万 ' ;
4: newstr:=newstr+Str_dw+' 千 ' ;
5: newstr:=newstr+Str_dw+' 百 ' ;
6: newstr:=newstr+Str_dw+' 十 ' ;
7: newstr:=newstr+Str_dw+' 圆 ' ;
8: newstr:=newstr+Str_dw+' ' ;
9: newstr:=newstr+Str_dw+' 角 ' ;
10: newstr:=newstr+Str_dw+' 分 ' ;
end;
9:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 十 ' ;
2: newstr:=newstr+Str_dw+' 万 ' ;
3: newstr:=newstr+Str_dw+' 千 ' ;
4: newstr:=newstr+Str_dw+' 百 ' ;
5: newstr:=newstr+Str_dw+' 十 ' ;
6: newstr:=newstr+Str_dw+' 圆 ' ;
7: newstr:=newstr+Str_dw+' ' ;
8: newstr:=newstr+Str_dw+' 角 ' ;
9: newstr:=newstr+Str_dw+' 分 ' ;
end;
8:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 万 ' ;
2: newstr:=newstr+Str_dw+' 千 ' ;
3: newstr:=newstr+Str_dw+' 百 ' ;
4: newstr:=newstr+Str_dw+' 十 ' ;
5: newstr:=newstr+Str_dw+' 圆 ' ;
6: newstr:=newstr+Str_dw+' ' ;
7: newstr:=newstr+Str_dw+' 角 ' ;
8: newstr:=newstr+Str_dw+' 分 ' ;
end;
7:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 千 ' ;
2: newstr:=newstr+Str_dw+' 百 ' ;
3: newstr:=newstr+Str_dw+' 十 ' ;
4: newstr:=newstr+Str_dw+' 圆 ' ;
5: newstr:=newstr+Str_dw+' ' ;
6: newstr:=newstr+Str_dw+' 角 ' ;
7: newstr:=newstr+Str_dw+' 分 ' ;
end;
6:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 百 ' ;
2: newstr:=newstr+Str_dw+' 十 ' ;
3: newstr:=newstr+Str_dw+' 圆 ' ;
4: newstr:=newstr+Str_dw+' ' ;
5: newstr:=newstr+Str_dw+' 角 ' ;
6: newstr:=newstr+Str_dw+' 分 ' ;
end;
5:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 十 ' ;
2: newstr:=newstr+Str_dw+' 圆 ' ;
3: newstr:=newstr+Str_dw+' ' ;
4: newstr:=newstr+Str_dw+' 角 ' ;
5: newstr:=newstr+Str_dw+' 分 ' ;
end;
4:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 圆 ' ;
2: newstr:=newstr+Str_dw+' ' ;
3: newstr:=newstr+Str_dw+' 角 ' ;
4: newstr:=newstr+Str_dw+' 分 ' ;
end;
end;
end;
Result := '¥'+NewStr;
end;
Function TForm1.IntChangChar(var IntStr:String):String;
var
NewStr,Str_dw:String;
iCount:integer;
Str_pj:Char;
begin
NewStr:='';
for iCount:=1 to length(IntStr) do
begin
Str_pj := IntStr[iCount];
case Str_pj of //把小写字符转换成大写字符
'0': Str_dw := '零';
'1': Str_dw := '壹';
'2': Str_dw := '贰';
'3': Str_dw := '叁';
'4': Str_dw := '肆';
'5': Str_dw := '伍';
'6': Str_dw := '陆';
'7': Str_dw := '柒';
'8': Str_dw := '捌';
'9': Str_dw := '玖';
'.': Str_dw := '点';
end;
case Length(IntStr) of
12:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 亿 ' ;
2: newstr:=newstr+Str_dw+' 千 ' ;
3: newstr:=newstr+Str_dw+' 百 ' ;
4: newstr:=newstr+Str_dw+' 十 ' ;
5: newstr:=newstr+Str_dw+' 万 ' ;
6: newstr:=newstr+Str_dw+' 千 ' ;
7: newstr:=newstr+Str_dw+' 百 ' ;
8: newstr:=newstr+Str_dw+' 十 ' ;
9: newstr:=newstr+Str_dw+' 圆 ' ;
10: newstr:=newstr+Str_dw+' ' ;
11: newstr:=newstr+Str_dw+' 角 ' ;
12: newstr:=newstr+Str_dw+' 分 ' ;
end;
11:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 千 ' ;
2: newstr:=newstr+Str_dw+' 百 ' ;
3: newstr:=newstr+Str_dw+' 十 ' ;
4: newstr:=newstr+Str_dw+' 万 ' ;
5: newstr:=newstr+Str_dw+' 千 ' ;
6: newstr:=newstr+Str_dw+' 百 ' ;
7: newstr:=newstr+Str_dw+' 十 ' ;
8: newstr:=newstr+Str_dw+' 圆 ' ;
9: newstr:=newstr+Str_dw+' ' ;
10: newstr:=newstr+Str_dw+' 角 ' ;
11: newstr:=newstr+Str_dw+' 分 ' ;
end;
10:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 百 ' ;
2: newstr:=newstr+Str_dw+' 十 ' ;
3: newstr:=newstr+Str_dw+' 万 ' ;
4: newstr:=newstr+Str_dw+' 千 ' ;
5: newstr:=newstr+Str_dw+' 百 ' ;
6: newstr:=newstr+Str_dw+' 十 ' ;
7: newstr:=newstr+Str_dw+' 圆 ' ;
8: newstr:=newstr+Str_dw+' ' ;
9: newstr:=newstr+Str_dw+' 角 ' ;
10: newstr:=newstr+Str_dw+' 分 ' ;
end;
9:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 十 ' ;
2: newstr:=newstr+Str_dw+' 万 ' ;
3: newstr:=newstr+Str_dw+' 千 ' ;
4: newstr:=newstr+Str_dw+' 百 ' ;
5: newstr:=newstr+Str_dw+' 十 ' ;
6: newstr:=newstr+Str_dw+' 圆 ' ;
7: newstr:=newstr+Str_dw+' ' ;
8: newstr:=newstr+Str_dw+' 角 ' ;
9: newstr:=newstr+Str_dw+' 分 ' ;
end;
8:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 万 ' ;
2: newstr:=newstr+Str_dw+' 千 ' ;
3: newstr:=newstr+Str_dw+' 百 ' ;
4: newstr:=newstr+Str_dw+' 十 ' ;
5: newstr:=newstr+Str_dw+' 圆 ' ;
6: newstr:=newstr+Str_dw+' ' ;
7: newstr:=newstr+Str_dw+' 角 ' ;
8: newstr:=newstr+Str_dw+' 分 ' ;
end;
7:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 千 ' ;
2: newstr:=newstr+Str_dw+' 百 ' ;
3: newstr:=newstr+Str_dw+' 十 ' ;
4: newstr:=newstr+Str_dw+' 圆 ' ;
5: newstr:=newstr+Str_dw+' ' ;
6: newstr:=newstr+Str_dw+' 角 ' ;
7: newstr:=newstr+Str_dw+' 分 ' ;
end;
6:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 百 ' ;
2: newstr:=newstr+Str_dw+' 十 ' ;
3: newstr:=newstr+Str_dw+' 圆 ' ;
4: newstr:=newstr+Str_dw+' ' ;
5: newstr:=newstr+Str_dw+' 角 ' ;
6: newstr:=newstr+Str_dw+' 分 ' ;
end;
5:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 十 ' ;
2: newstr:=newstr+Str_dw+' 圆 ' ;
3: newstr:=newstr+Str_dw+' ' ;
4: newstr:=newstr+Str_dw+' 角 ' ;
5: newstr:=newstr+Str_dw+' 分 ' ;
end;
4:
case iCount of //换成大写
1: newstr:=newstr+Str_dw+' 圆 ' ;
2: newstr:=newstr+Str_dw+' ' ;
3: newstr:=newstr+Str_dw+' 角 ' ;
4: newstr:=newstr+Str_dw+' 分 ' ;
end;
end;
end;
Result := '¥'+NewStr;
end;