查看单个帖子
旧 2009-05-16   #3
mdcfil
初级会员
级别:2 | 在线时长:15小时 | 升级还需:15小时级别:2 | 在线时长:15小时 | 升级还需:15小时
 
mdcfil 的头像
 
注册: 07年11月18日
帖子: 46
声望力: 0
声望: 23 mdcfil 初领妙道
积分:8
精华:1
现金:238两梁山币
资产:238两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0
回复: 请教 如何转换中文数字为阿拉伯数字?

1.
#if %1=一 {%2=1}

这个语句我开始也试过,不知道为啥,不起作用,不能正确赋值。注:我用的462编写的解迷机器。

2、这部分是 alias change
#variable temporary1 {0} {0}
#variable temporary2 {0} {0}
#variable temporary3 {0} {0}
#variable temporary4 {0} {0}
#variable temporary5 {0} {0}
#if %pos(万,%1) {change %left(%1,%pos(万,%1)-1) temporary1}
#if %pos(千,%1) {change %rightback(%left(%1,%pos(千,%1)-1),2) temporary2}
#if %pos(百,%1) {change %rightback(%left(%1,%pos(百,%1)-1),2) temporary3}
#if %pos(十,%1) {change %rightback(%left(%1,%pos(十,%1)-1),2) temporary4}
#if %pos(十,%1) {change %rightback(%1,2) temporary5}
#if (@temporary5>9) {temporary5=0}
#if (%begins(%1,十)) {temporary4=1}
#math %2 (10000*@temporary1+1000*@temporary2+
100*@temporary3+10*@temporary4+@temporary5) (这行和上一行是同一行)
这部分是alias changeall

第二部分看不太懂,大侠能不能给个简短的说明,我也再研究下mud指令和函数。先谢了!!

3.
new一个alias 名称为convert,value为 number=%1;
number=%replace( @number, 零, 0) ;number=%replace( @number, 一, 1); .......
number=%replace( @number, 八, 8);number=%replace( @number, 九, 9);
number=%replace( @number, 十, "*10+") ;number=%replace( @number, 百, "*100+");
number=%replace( @number, 千, "*1000+");number=%replace( @number, 万, "*10000+");
number=%replace( @number, " ", "")
#if (%ends( @number, +)) {number=%concat( @number, 0)}
#if (%begins( @number, *)) {number=%concat( 1, @number)}
number=%eval( @number)
#show @number

%replace的命令在462下面运用貌似有问题,我试过{%replace(二十,二十,20);%replace(三十,三十,30)}这个语句,每次不管触发数字是二十还是三十,结果返回值都是30,不知道问题出在什么地方,望高手指教。这里我用具体数字替代了变量。另外赋值的变量省略了。
mdcfil 当前离线  
回复时引用此帖