作者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
→ hmml :"百"的判斷用%end應該就可以....runaway 10/03 12:44
→ hmml :#case指令中,第零項就代表最後一項... 10/03 12:48
推 tawi :推一個,Hmml神 10/03 12:48
推 justinj :印象中..去google找有..不過它可以到萬.. 10/03 18:26
→ hmml :等你寫一萬段..... 10/04 18:44
→ justinj :到萬...用獸魔那種寫法就可以出來..但會當吧..avert 10/04 18:50
→ hmml :千段 萬段修法也跟百段差不多而己...十萬以上的才會 10/05 19:39
→ hmml :變複雜.... 10/05 19:39
→ hmml :不過也只是從萬斷開判斷,再接回去罷了 10/05 19:41