→ hmml :"百"的判斷用%end應該就可以....runaway 10/03 12:44
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