帮我把下面的函数变成DELPHI,这个我看不大懂,THANKS,解决马上给分
<SCRIPT LANGUAGE="JavaScript">
<!--
function Arabia_to_Chinese(Num){
 for(i=Num.length-1;i>=0;i--)
 {
  Num = Num.replace(",","")//替换tomoney()中的“,”
  Num = Num.replace(" ","")//替换tomoney()中的空格
 }
 Num = Num.replace("¥","")//替换掉可能出现的¥字符
 if(isNaN(Num)) { //验证输入的字符是否为数字
  alert("请检查小写金额是否正确");
  return;
 }
 //---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
 part = String(Num).split(".");
 newchar = ""; 
 //小数点前进行转化
 for(i=part[0].length-1;i>=0;i--){
 if(part[0].length > 10){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示
  tmpnewchar = ""
  perchar = part[0].charAt(i);
  switch(perchar){
    case "0": tmpnewchar="零" + tmpnewchar ;break;
    case "1": tmpnewchar="壹" + tmpnewchar ;break;
    case "2": tmpnewchar="贰" + tmpnewchar ;break;
    case "3": tmpnewchar="叁" + tmpnewchar ;break;
    case "4": tmpnewchar="肆" + tmpnewchar ;break;
    case "5": tmpnewchar="伍" + tmpnewchar ;break;
    case "6": tmpnewchar="陆" + tmpnewchar ;break;
    case "7": tmpnewchar="柒" + tmpnewchar ;break;
    case "8": tmpnewchar="捌" + tmpnewchar ;break;
    case "9": tmpnewchar="玖" + tmpnewchar ;break;
  }
  switch(part[0].length-i-1){
    case 0: tmpnewchar = tmpnewchar +"元" ;break;
    case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
    case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
    case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
    case 4: tmpnewchar= tmpnewchar +"万" ;break;
    case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
    case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
    case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
    case 8: tmpnewchar= tmpnewchar +"亿" ;break;
    case 9: tmpnewchar= tmpnewchar +"拾" ;break;
  }
  newchar = tmpnewchar + newchar;
 }
 //小数点之后进行转化
 if(Num.indexOf(".")!=-1){
 if(part[1].length > 2) {
  alert("小数点之后只能保留两位,系统将自动截段");
  part[1] = part[1].substr(0,2)
  }
 for(i=0;i<part[1].length;i++){
  tmpnewchar = ""
  perchar = part[1].charAt(i)
  switch(perchar){
    case "0": tmpnewchar="零" + tmpnewchar ;break;
    case "1": tmpnewchar="壹" + tmpnewchar ;break;
    case "2": tmpnewchar="贰" + tmpnewchar ;break;
    case "3": tmpnewchar="叁" + tmpnewchar ;break;
    case "4": tmpnewchar="肆" + tmpnewchar ;break;
    case "5": tmpnewchar="伍" + tmpnewchar ;break;
    case "6": tmpnewchar="陆" + tmpnewchar ;break;
    case "7": tmpnewchar="柒" + tmpnewchar ;break;
    case "8": tmpnewchar="捌" + tmpnewchar ;break;
    case "9": tmpnewchar="玖" + tmpnewchar ;break;
  }
  if(i==0)tmpnewchar =tmpnewchar + "角";
  if(i==1)tmpnewchar = tmpnewchar + "分";
  newchar = newchar + tmpnewchar;
 }
 }
 //替换所有无用汉字
 while(newchar.search("零零") != -1)
  newchar = newchar.replace("零零", "零");
 newchar = newchar.replace("零亿", "亿");
 newchar = newchar.replace("亿万", "亿");
 newchar = newchar.replace("零万", "万");
 newchar = newchar.replace("零元", "元");
 newchar = newchar.replace("零角", "");
 newchar = newchar.replace("零分", ""); if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角")
  newchar = newchar+"整"
// return newchar;
document.frm.num2.value=newchar;
}
//-->
</SCRIPT>

解决方案 »

  1.   

    使用StringReplace、pos、copy函数自己写吧
      

  2.   

    金额大小写转换的程序很多的,CSDN上搜索一下吧
      

  3.   

    用Delphi编制金额大写转换程序
     
    在从事与财务相关的软件开发过程中,通常要求将小写金额转换成相应的大写金额,并打印在大写金额栏中。下面是用Delphi3.0编制的一个转换函数,能够方便的在程序中调用,并返回字符串。 1.定义函数num—str function num—str(ls: Variant): String; var dx—sz,dx—dw,str—int,str—dec,dx—str,fu:string; a,b,b2,c,d:string; num—int,num—dec,len—int,i,a—int,pp:integer; //dx—str为返回字符串 begin dx—sz:=′零壹贰叁肆伍陆柒捌玖′; dx—dw:=′万仟佰拾亿仟佰拾万仟佰拾元′; //处理金额小于零情况 if ls〈0 then begin ls:=ls(-1); fu:=′负′; end else fu:=′′; //取得整数值及整数串 dx—str:=ls; if (ls〉0)and(ls〈1) then dx—str:=′0′+dx—str; pp:=pos(′.′,dx—str); if pp〉0 then str—int:=copy(dx—str,1,pos(′.′,dx—str)-1) else str—int:=dx—str; num—int:=strtoint(str—int); //取得小数值及小数串 if (ls〉0)and(ls〈1) then num—dec:=ls100 else num—dec:=(ls-num—int)100; str—dec:=inttostr(num—dec); len—int:=Length(str—int); dx—str:=′′; //转换整数部分 for i:=1 to len—int do begin //a为小写数字字符,b为对应的大写字符 //c为对应大写单位,d为当前大写字符串的最后一个汉字 a:=copy(str—int,i,1); a—int:=strtoint(a); b:=copy(dx—sz,(a—int2+1),2); c:=copy(dx—dw,((13-len—int+i-1)2+1),2); if dx—str〈〉′′ then d:=copy(dx—str,Length(dx—str)-1,2) else d:=′′; if (b=′零′)and((d=′零′)or(b=b2)or(c=′元′)or(c=′万′)or(c=′亿′)) then b:=′′; if (a=′0′)and(c〈〉′元′)and(c〈〉万′′)and(c〈〉′亿′) then c:=′′; if ((c=′元′)or(c=′万′)or(c=′亿′))and (d=′零′)and(a=′0′) then begin dx—str:=copy(dx—str,1,Length(dx—str)-2); d:=copy(dx—str,Length(dx—str)-1,2); if ((c=′元′)and(d=′万′))or((c=′万′)and(d=′亿′)) then c:=′′; end; dx—str:=dx—str+b+c; b2:=b; end; //处理金额小于1的情况 if Length(dx—str)〈=2 then dx—str:=′′; //转换小数部分 if (num—dec〈10)and(ls〉0) then begin a—int:=strtoint(str—dec); b:=copy(dx—sz,(a—int2+1),2); if num—dec=0 then dx—str:=dx—str+′整′; if num—dec〉0 then dx—str:=dx—str+′零′+b+′分′; end; if num—dec〉=10 then begin a—int:=strtoint(copy(str—dec,1,1)); a:=copy(dx—sz,(a—int2+1),2); a—int:=strtoint(copy(str—dec,2,1)); b:=copy(dx—sz,(a—int2+1),2); if a〈〉′零′ then a:=a+′角′; if b〈〉′零′ then b:=b+′分′ else b:=′′; dx—str:=dx—str+a+b; end; if ls=0 then dx—str:=′零元整′; dx—str:=fu+dx—str; //函数返回字符串 Result:=dx—str; end; 2.调用方法 函数参数采用Variant类型,调用时参数值可以是实型,也可以是字符串,非常方便,下面举例说明: 新建窗口,在相应pas文件中加入num—str函数,并在窗口中添加Button1和Edit1、Edit2控件,双击Button1输入以下代码,运行程序即可: procedure TForm1.Button1Click(Sender: TObject); begin Edit1.text:=num—str(202055010.32); //也可以在Edit2中输入数串调用 //Edit1.text:=num—str(Edit2.text); end;
      

  4.   

    http://www.mhdn.net/p/2002-10-15/6107.html
      

  5.   

    function SmallTOBig(small:real):string;
    var SmallMonth,BigMonth:string;
    wei1,qianwei1:string[2];
    qianwei,dianweizhi,qian:integer;
    begin
    {------- 修改参数令值更精确 -------}
    qianwei:=-2;{小数点后的位置,需要的话也可以改动-2值}
    Smallmonth:=formatfloat('0.00',small);{转换成货币形式,需要的话小数点后加多几个零}
    {---------------------------------}
    dianweizhi :=pos('.',Smallmonth);{小数点的位置}
    for qian:=length(Smallmonth) downto 1 do{循环小写货币的每一位,从小写的右边位置到左边}
    begin
    if qian<>dianweizhi then{如果读到的不是小数点就继续}
    begin
    case strtoint(copy(Smallmonth,qian,1)) of{位置上的数转换成大写}
    1:wei1:='壹'; 2:wei1:='贰';
    3:wei1:='叁'; 4:wei1:='肆';
    5:wei1:='伍'; 6:wei1:='陆';
    7:wei1:='柒'; 8:wei1:='捌';
    9:wei1:='玖'; 0:wei1:='零';
    end;
    case qianwei of{判断大写位置,可以继续增大到real类型的最大值}
    -3:qianwei1:='厘';
    -2:qianwei1:='分';
    -1:qianwei1:='角';
    0 :qianwei1:='元';
    1 :qianwei1:='拾';
    2 :qianwei1:='佰';
    3 :qianwei1:='仟';
    4 :qianwei1:='万';
    5 :qianwei1:='拾';
    6 :qianwei1:='佰';
    7 :qianwei1:='仟';
    8 :qianwei1:='亿';
    9 :qianwei1:='十';
    10:qianwei1:='佰';
    11:qianwei1:='仟';
    end;
    inc(qianwei);
    BigMonth :=wei1+qianwei1+BigMonth;{组合成大写金额}
    end;
    end;
    SmallTOBig:=BigMonth;
    end;