作者hmml (hmml)
看板mud_sanc
标题[心得] 将血肉段数由中文改为数字
时间Sun Oct 3 12:41:28 2010
Pattern:为第(%1)段
chnumberlist="零 一 二 三 四 五 六 七 八 九"
先准备一个置换表chnumberlist。
#var bloodmap %1
把末加工的中文型态段数放进bloodmap里。
#loop 0,9 {#var bloodmap %replace(@bloodmap,%word(@chnumberlist,%eval(%i+1)),%i}
利用置换表把零一二三四五六七八九改成0123456789
#case
%eval(%len(@bloodmap)-%pos("百",@bloodmap=1)) {#var bloodmap
%replace(@bloodmap,"百","00"} {#var bloodmap %replace(@bloodmap,"百",""}
将中文字百修改成正确的结果。
状况 len pos 运算结果 选择项 取代值 结果
1百 3 2
1 红 00 100
1百01 5 2 0 白 101
1百1十 6 2 0 白 110
1百1十1 7 2 0 白 111
#case
%eval(%pos("十",@bloodmap)+%len(@bloodmap)-2) {#var bloodmap
%replace(@bloodmap,"十","10")} {#var bloodmap %replace(@bloodmap,"十","1")}
{#var bloodmap %replace(@bloodmap,"十","0")} {#var bloodmap %replace(@bloodmap,"
十","")} {#var bloodmap %replace(@bloodmap,"十","0")} {#var bloodmap
%replace(@bloodmap,"十","")} {#noop}
将中文字十修改成正确的结果。
状况 len pos total total-2 选择项 取代值 结果
十 2 1 3 1 红 10 10
十2 3 1 4 2 绿 1 12
2十 3 2 5 3 金 0 20
2十2 4 2 6 4 紫 22
22十 4 3 8 5 靛 0 220
22十2 5 3 8 6 灰 222
#say @bloodmap
输出或另作他用!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.176.62
1F:→ hmml :"百"的判断用%end应该就可以....runaway 10/03 12:44
2F:→ hmml :#case指令中,第零项就代表最後一项... 10/03 12:48
3F:推 tawi :推一个,Hmml神 10/03 12:48
4F:推 justinj :印象中..去google找有..不过它可以到万.. 10/03 18:26
5F:→ hmml :等你写一万段..... 10/04 18:44
6F:→ justinj :到万...用兽魔那种写法就可以出来..但会当吧..avert 10/04 18:50
7F:→ hmml :千段 万段修法也跟百段差不多而己...十万以上的才会 10/05 19:39
8F:→ hmml :变复杂.... 10/05 19:39
9F:→ hmml :不过也只是从万断开判断,再接回去罢了 10/05 19:41