|
发表于 2008-4-15 21:21:43
|
显示全部楼层
http://bbs.njupt.edu.cn/cgi-bin/ ... &file=M.998498894.A
做了个把中文数字化为阿拉伯数字的机器人
有什么用??
对编机器人可是大有帮助啊
#fu base %if(%1=零,0,%if(%1=一,1,%if(%1=二,2,%if(%1=三,3,%if(%1=四,4,
%if(%1=五,5,%if(%1=六,6,%if(%1=七,7,%if(%1=八,8,%if(%1=九,9,0)
#fu base2 %if(@base(%1),@base(%1),%if(%pos(十,%1)=1,%eval(10+@base(%remove(
十,%1))),%eval(@base(@d(千,%1))*1000+@base(@d(百,%1))*100+%if(%pos(零十,%1),
10)+@base(@d(十,%1))*10+%if(%right(%1,%eval(%len(%1)-2))<>千 and %right(%1,%
eval(%len(%1)-2))<>百 and %right(%1,%eval(%len(%1)-2))<>十,@base(%right(%1,%
eval(%len(%1)-2))),0))))
#fu base3 %if(%pos(万,%1),%eval(@base2(%word(%1,1,万))*10000+@base2(%word(%
1,2,万))),@base2(%1))
#fu base4 %if(%pos(亿,%1),%eval(@base3(%word(%1,1,亿))*100000000+@base3(%wo
rd(%1,2,亿))),@base3(%1))
#fu d
%if(%pos(%1,%2),%right(%word(%2,1,%1),%eval(%len(%word(%2,1,%1))-2)),0)
#fu daoxing %eval(%if(%pos(年,%1),@base4(%word(%1,1,年)),0)*1000+%if(%pos(天
,%1),%if(%pos(年,%1),@base2(%word(%word(%1,1,天),2,年)),@base2(%word(%1,1,天
))),0)*4+%if(%pos(时辰,%1),%if(%pos(天,%1),@base2(%word(%word(%1,1,时辰),2,天
)),%if(%pos(年,%1),@base2(%word(%word(%1,1,时辰),2,年)),@base2(%word(%1,1,时
辰)))),0)/3)
在做个trigger
#ac 【道行】:%s(%x)$ {data=%1;dx=@daoxing(@data);dx=%concat(" ",@dx);
#sub 道行:%ansi(bold,magenta)@dx}
就会出现数字显示的道行了
其中@base4()函数是把中文数字化为阿拉伯数字的函数
如:dat=@base4(@x)就把中文的@x化为阿拉伯数字放到dat里了
可支持16位
如果觉得#fu 后的过长可以把他直接考到variables下去(菜单view/variables)
其中variable填base..后面长的部分考到value行(注意不要换行) |
|