| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #nop vim: set filetype=tt:;
- /*
- 本文件属于 PaoTin++ 的一部分。
- PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
- 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
- */
- #nop 本文件是 xtintin 的一部分,实现了一些表格处理函数;
- ///=== {
- ///// 表格处理函数:
- //
- // #@ table.Keys <表格变量名> [<键名通配符>]
- // 提取表格中所有符合通配符的键名,结果以 slist 格式返回。
- // };
- #func {table.Keys} {
- #local table.local.table {%1};
- #local table.local.pattern {@default{%2;%*}};
- #local len {&{${table.local.table}[]}};
- #if { $len == 0 } {
- #return {};
- };
- #local keys {};
- #loop 1 {&{${table.local.table}[]}} {idx} {
- #local key {*{${table.local.table}[+$idx]}};
- #if { "$key" == "$table.local.pattern" } {
- #cat keys {*{${table.local.table}[+$idx]};};
- };
- };
- #replace {keys} {;$} {};
- #return {$keys};
- };
- ///=== {
- // #@ table.Values <表格变量名> [<值的通配符>]
- // 提取表格中所有符合通配符的值,结果以 slist 格式返回。
- // };
- #func {table.Values} {
- #local table.local.table {%1};
- #local table.local.pattern {@default{%2;%*}};
- #local len {&{${table.local.table}[]}};
- #if { $len == 0 } {
- #return {};
- };
- #local values {};
- #loop 1 {&{${table.local.table}[]}} {idx} {
- #local value {${${table.local.table}[+$idx]}};
- #if { "$value" == "$table.local.pattern" } {
- #cat values {${${table.local.table}[+$idx]};};
- };
- };
- #replace {values} {;$} {};
- #return {$values};
- };
|