把金額轉為大小的代碼
{ 該代碼摘自大富翁: 呂雪松的
有改動 }
function ToDaxie(Money : double) : string;
var
XiaoXie,DaXie : String;
DaXie1:array [0..9] of string;
Buf,TmpBuf : string;
I : integer;
P : integer;
MM : string;
begin
XiaoXie := '0123456789';
DaXie := '零壹貳三肆伍陸柒捌玖';
DaXie1[0] := '零';
DaXie1[1] := '壹';
DaXie1[2] := '貳';
DaXie1[3] := '三';
DaXie1[4] := '肆';
DaXie1[5] := '伍';
DaXie1[6] := '陸';
DaXie1[7] := '柒';
DaXie1[8] := '捌';
DaXie1[9] := '玖';
MM := '分角拾佰仟萬拾佰仟億拾佰仟萬';
Buf := FloatToStr(Money);
TmpBuf := '圓';
P := Pos('.',Buf);
if P = 0 then P := Length(Buf) + 1;
for I := P + 1 to Length(Buf) do
begin
if Buf[i] <> '0' then
TmpBuf := TmpBuf + Buf[i] + Copy(MM, 5 - 2*(I - P),2);
//
end;
// showmessage(tmpBuf);
for I := 1 to P - 1 do begin
if Buf[P - I] <> '0' then begin
if I <> 1 then TmpBuf := Copy(MM,2*I + 1,2) + TmpBuf;
TmpBuf := Buf[P - I] + TmpBuf;
end;
end;
Buf := TmpBuf;
//showmessage(Buf);
for I := 1 to Length(Buf)+2 do begin
if Buf[I] <> '0' then begin
P := Pos(Buf[I],XiaoXie);
// if P > 0 then Buf := StringReplace(Buf,Buf[I],Copy(DaXie,2*P-1,2),[rfReplaceAll]);
if P > 0 then Buf := StringReplace(Buf,Buf[I],DaXie1[strtoint(buf[i])],[rfReplaceAll]);
end;
end;
result := Buf;
end;