|
|
@@ -1,237 +0,0 @@
|
|
|
-#nop vim: set filetype=tt:;
|
|
|
-
|
|
|
-/*
|
|
|
-本文件属于 PaoTin++ 的一部分。
|
|
|
-PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
|
|
|
-你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
|
|
|
-*/
|
|
|
-
|
|
|
-#nop ############################ 小工具-方向处理 #################################;
|
|
|
-
|
|
|
-#func {reverseCmds} {
|
|
|
- #local cmds {%1};
|
|
|
- #local newCmds {};
|
|
|
- #foreach {$cmds} {item} {
|
|
|
- #if { "$newCmds" == "" } {
|
|
|
- #local newCmds {@reverseDir{$item}};
|
|
|
- };
|
|
|
- #else {
|
|
|
- #format {newCmds} {%s;%s} {@reverseDir{$item}} {$newCmds};
|
|
|
- };
|
|
|
- };
|
|
|
-
|
|
|
- #return {$newCmds};
|
|
|
-};
|
|
|
-
|
|
|
-#func {dirName} { #return @convertDir{name; %1; %2}; };
|
|
|
-#func {shortDir} { #return @convertDir{short; %1; %2}; };
|
|
|
-#func {longDir} { #return @convertDir{long; %1; %2}; };
|
|
|
-#func {reverseDir} {
|
|
|
- #if { "%1" == "enter{| .*}" } {
|
|
|
- #return {out};
|
|
|
- };
|
|
|
- #else {
|
|
|
- #return @convertDir{reverse; %1; %2};
|
|
|
- };
|
|
|
-};
|
|
|
-
|
|
|
-#var xtt.dir.table {
|
|
|
- {east} {{name}{正东} {short}{e} {long}{east} {reverse}{west} }
|
|
|
- {west} {{name}{正西} {short}{w} {long}{west} {reverse}{east} }
|
|
|
- {south} {{name}{正南} {short}{s} {long}{south} {reverse}{north} }
|
|
|
- {north} {{name}{正北} {short}{n} {long}{north} {reverse}{south} }
|
|
|
-
|
|
|
- {e} {{name}{正东} {short}{e} {long}{east} {reverse}{w} }
|
|
|
- {w} {{name}{正西} {short}{w} {long}{west} {reverse}{e} }
|
|
|
- {s} {{name}{正南} {short}{s} {long}{south} {reverse}{n} }
|
|
|
- {n} {{name}{正北} {short}{n} {long}{north} {reverse}{s} }
|
|
|
-
|
|
|
- {northeast} {{name}{东北} {short}{ne} {long}{northeast} {reverse}{southwest}}
|
|
|
- {southeast} {{name}{东南} {short}{se} {long}{southeast} {reverse}{northwest}}
|
|
|
- {northwest} {{name}{西北} {short}{nw} {long}{northwest} {reverse}{southeast}}
|
|
|
- {southwest} {{name}{西南} {short}{sw} {long}{southwest} {reverse}{northeast}}
|
|
|
-
|
|
|
- {ne} {{name}{东北} {short}{ne} {long}{northeast} {reverse}{sw} }
|
|
|
- {se} {{name}{东南} {short}{se} {long}{southeast} {reverse}{nw} }
|
|
|
- {nw} {{name}{西北} {short}{nw} {long}{northwest} {reverse}{se} }
|
|
|
- {sw} {{name}{西南} {short}{sw} {long}{southwest} {reverse}{ne} }
|
|
|
-
|
|
|
- {up} {{name}{正上} {short}{u} {long}{up} {reverse}{down} }
|
|
|
- {down} {{name}{正下} {short}{d} {long}{down} {reverse}{up} }
|
|
|
- {u} {{name}{正上} {short}{u} {long}{up} {reverse}{d} }
|
|
|
- {d} {{name}{正下} {short}{d} {long}{down} {reverse}{u} }
|
|
|
-
|
|
|
- {eastup} {{name}{东上} {short}{eu} {long}{eastup} {reverse}{westdown} }
|
|
|
- {westup} {{name}{西上} {short}{wu} {long}{westup} {reverse}{eastdown} }
|
|
|
- {southup} {{name}{南上} {short}{su} {long}{southup} {reverse}{northdown}}
|
|
|
- {northup} {{name}{北上} {short}{nu} {long}{northup} {reverse}{southdown}}
|
|
|
-
|
|
|
- {eu} {{name}{东上} {short}{eu} {long}{eastup} {reverse}{wd} }
|
|
|
- {wu} {{name}{西上} {short}{wu} {long}{westup} {reverse}{ed} }
|
|
|
- {su} {{name}{南上} {short}{su} {long}{southup} {reverse}{nd} }
|
|
|
- {nu} {{name}{北上} {short}{nu} {long}{northup} {reverse}{sd} }
|
|
|
-
|
|
|
- {eastdown} {{name}{东下} {short}{ed} {long}{eastdown} {reverse}{westup} }
|
|
|
- {westdown} {{name}{西下} {short}{wd} {long}{westdown} {reverse}{eastup} }
|
|
|
- {southdown} {{name}{南下} {short}{sd} {long}{southdown} {reverse}{northup} }
|
|
|
- {northdown} {{name}{北下} {short}{nd} {long}{northdown} {reverse}{southup} }
|
|
|
-
|
|
|
- {ed} {{name}{东下} {short}{ed} {long}{eastdown} {reverse}{wu} }
|
|
|
- {wd} {{name}{西下} {short}{wd} {long}{westdown} {reverse}{eu} }
|
|
|
- {sd} {{name}{南下} {short}{sd} {long}{southdown} {reverse}{nu} }
|
|
|
- {nd} {{name}{北下} {short}{nd} {long}{northdown} {reverse}{su} }
|
|
|
-
|
|
|
- {out} {{name}{出去} {short}{out} {long}{out} {reverse}{enter} }
|
|
|
- {enter} {{name}{进去} {short}{enter} {long}{enter} {reverse}{out} }
|
|
|
-};
|
|
|
-
|
|
|
-#func {convertDir} {
|
|
|
- #local field {%1};
|
|
|
- #local dir {%2};
|
|
|
- #local restricted {%2};
|
|
|
-
|
|
|
- #if { "$dir" == "" } {
|
|
|
- #return {};
|
|
|
- };
|
|
|
-
|
|
|
- #local entry ${xtt.dir.table[$dir]};
|
|
|
-
|
|
|
- #if { "$restricted" == "true" && "$entry" == "" } {
|
|
|
- #return {};
|
|
|
- };
|
|
|
- #else {
|
|
|
- #return {$entry[$field]};
|
|
|
- };
|
|
|
-};
|
|
|
-
|
|
|
-#nop ############################ 小工具-语法增强 #################################;
|
|
|
-
|
|
|
-#func {boolAnd} {
|
|
|
- #if { "%1" == "true" && "%2" == "true" } {
|
|
|
- #return {true};
|
|
|
- };
|
|
|
-
|
|
|
- #return {false};
|
|
|
-};
|
|
|
-
|
|
|
-#func {reverseList} {
|
|
|
- #var l {%1};
|
|
|
-
|
|
|
- #list {l} size len;
|
|
|
- #list {result} create {};
|
|
|
-
|
|
|
- #loop $len 1 {idx} {
|
|
|
- #list {result} add $l[$idx];
|
|
|
- };
|
|
|
-};
|
|
|
-
|
|
|
-#func {eval} {#math result {%1}};
|
|
|
-#func {space} {#var result {@repeat{%1;{ }}}};
|
|
|
-#func {repeat} {#var result {}; #loop 1 %1 tmp {#var result {${result}%2}}};
|
|
|
-#func {string2list} {#list result {create} {%1}};
|
|
|
-#func {list2string} {#var l {%1}; #list l simplify; #return {$l}};
|
|
|
-#func {strListSize} {#list l create {%1}; #list l size result};
|
|
|
-#func {indexOfStrList} {#list l create {%1}; #list l find {%2} result};
|
|
|
-#func {indexOf} {#var l {%1}; #list l find {%2} result};
|
|
|
-#func {trim} {#format {result} {%p} {%1}};
|
|
|
-#func {trimAll} {#var result {%1}; #replace {result} { } {}};
|
|
|
-#func {sort} {#var l {%0}; #var result {}; #foreach {$l} {tmp} {#list result {sort} {$tmp}}; #return {@list2string{{$result}}}};
|
|
|
-#func {sortList} {#var l {@list2string{{%0}}}; #var result {}; #foreach {$l} {tmp} {#list result {sort} {$tmp}}};
|
|
|
-#func {listSize} {#var l {%1}; #list l size result};
|
|
|
-#func {listSet} {#var l {%1}; #loc idx {%2}; #loc data {%3}; #var l @listExtend{{$l};$idx}; #list l set {$idx} {$data}; #return {$l} };
|
|
|
-#func {listExtend} {#var l {%1}; #loc len {%2}; #loc size {@listSize{{$l}}}; #math len {$len - $size}; #if { $len > 0 } { #loop {1} {$len} {id} { #list l add {{}} } }; #return {$l} };
|
|
|
-#func {len} {#format result {%L} {%1}};
|
|
|
-#func {toLower} {#format result {%l} {%1}};
|
|
|
-#func {toUpper} {#format result {%u} {%1}};
|
|
|
-#func {capital} {#format result {%n} {%1}};
|
|
|
-#func {replace} {#var result %1;#replace result {%2} {%3}};
|
|
|
-#func {inList} {#math result { @indexOf{{%1};{%2}} > 0 }};
|
|
|
-#func {center} {#format len {%L} {%1}; #math left {(%2 - $len) / 2 + $len}; #math right {%2 - $left}; #format result {%${left}s%${right}s} {%1} {}};
|
|
|
-
|
|
|
-#func {max} {#var result {%1}; #foreach {%0} {i} {#if { $i > $result} { #var result {$i}}}};
|
|
|
-#func {min} {#var result {%1}; #foreach {%0} {i} {#if { $i < $result} { #var result {$i}}}};
|
|
|
-
|
|
|
-#func {parseTime} {
|
|
|
- #local {timeStr} {%1};
|
|
|
-
|
|
|
- #nop 注意这里用了个小技巧,末尾的空格不要去掉;
|
|
|
- #replace timeStr {%S小时} {@c2d{&1}*3600+ };
|
|
|
- #replace timeStr {%S分} {@c2d{&1}*60+ };
|
|
|
- #replace timeStr {%S秒} {@c2d{&1}};
|
|
|
-
|
|
|
- #local time {};
|
|
|
- #math time {$timeStr + 0};
|
|
|
-
|
|
|
- #return {$time};
|
|
|
-};
|
|
|
-
|
|
|
-#func {c2d} {
|
|
|
- #local string {%1};
|
|
|
-
|
|
|
- #local number1 {};
|
|
|
- #local number2 {0};
|
|
|
- #local number3 {0};
|
|
|
-
|
|
|
- #local chr {};
|
|
|
-
|
|
|
- #local ch {};
|
|
|
- #parse {$string} {ch} {
|
|
|
- #if { "$ch" == "{1|2|3|4|5|6|7|8|9|0|\.}" } {
|
|
|
- #format number1 {%s%s} {$number1} {$ch};
|
|
|
- #continue;
|
|
|
- };
|
|
|
-
|
|
|
- #switch {"$ch"} {
|
|
|
- #case {"零"} { #format number1 {0} };
|
|
|
- #case {"一"} { #format number1 {1} };
|
|
|
- #case {"二"} { #format number1 {2} };
|
|
|
- #case {"三"} { #format number1 {3} };
|
|
|
- #case {"四"} { #format number1 {4} };
|
|
|
- #case {"五"} { #format number1 {5} };
|
|
|
- #case {"六"} { #format number1 {6} };
|
|
|
- #case {"七"} { #format number1 {7} };
|
|
|
- #case {"八"} { #format number1 {8} };
|
|
|
- #case {"九"} { #format number1 {9} };
|
|
|
- #case {"十"} {
|
|
|
- #if { "$number1" == "" } {
|
|
|
- #format number1 {1};
|
|
|
- };
|
|
|
- #math number2 {$number2 + $number1 * 10};
|
|
|
- #format number1 {};
|
|
|
- };
|
|
|
- #case {"百"} {
|
|
|
- #math number2 {$number2 + $number1 * 100};
|
|
|
- #format number1 {};
|
|
|
- };
|
|
|
- #case {"千"} {
|
|
|
- #math number2 {$number2 + $number1 * 1000};
|
|
|
- #format number1 {};
|
|
|
- };
|
|
|
- #case {"万"} {
|
|
|
- #math number3 {$number3 + ($number2 + $number1) * 10000};
|
|
|
- #format number1 {};
|
|
|
- #format number2 {0};
|
|
|
- };
|
|
|
- #case {"亿"} {
|
|
|
- #math number3 {($number2 + $number1) * 100000000};
|
|
|
- #format number1 {};
|
|
|
- #format number2 {0};
|
|
|
- };
|
|
|
- };
|
|
|
- };
|
|
|
-
|
|
|
- #if { "$number1" == "" } {
|
|
|
- #format number1 {0};
|
|
|
- };
|
|
|
-
|
|
|
- #local number {};
|
|
|
- #math number {$number1 + $number2 + $number3};
|
|
|
- #return $number;
|
|
|
-};
|
|
|
-
|
|
|
-#func {strWidth} {
|
|
|
- #local str {%1};
|
|
|
- #replace {str} {<{[gG0-9A-Fa-f]{1,8}}>} {};
|
|
|
- #replace {str} {{\e\[[0-9;]+m}} {};
|
|
|
- #return {@len{$str}};
|
|
|
-};
|