x3652121 发表于 2024-3-7 23:17:24

建议增加数组变量,感觉很方便的功能(搬运其他引擎说明)

功能说明: 多元数组 or 元素变量
;--【赋值元素变量】
;--给元素变量赋值(非子元素),值两边必须加 [],不然报错。
MOV L$测试
sendmsg 7 输出结果:<$str(L$测试)>
;输出结果:
;-【取各字元素(大于等于0从第一个往后取;小于0从最后一个往前取】
sendmsg 7 输出结果:<$str(L$测试)>,<$str(L$测试)>,<$str(L$测试)>,,,,,<$str(L$测试[-2])>,<$str(L$测试[-1])>,
;输出结果:11,22,33,,,,,77,aa,
;--【修改子元素】
MOV L$测试 00
sendmsg 7 输出结果:<$str(L$测试)>
;输出结果:
;---【增加子元素】
INC L$测试 bb
sendmsg 7 输出结果:<$str(L$测试)>
;输出结果:
;--【删除子元素】
Dec L$测试 22
sendmsg 7 输出结果:<$str(L$测试)>
;输出结果:
;---【修改子元素】
Mov L$测试2
Mov L$测试 <$str(L$测试2)>
sendmsg 7 输出结果:<$str(L$测试)>
;输出结果:[,33,44,55,66,77,aa,bb]
;---【获取子元素的位置】
GetListVarIndex L$测试 aa N1
sendmsg 7 [L$测试]中"aa"位于第<$STR(N1)>个子元素
;---【获取子元素数量】
GetListVarCount L$测试 N1
sendmsg 7 [L$测试]中有<$STR(N1)>个子元素
;----【检查子元素是否存在】
#if
CheckVarInList L$测试 bb
#act
sendmsg 7 [L$测试]中存在"bb"
#elseact
sendmsg 7 [L$测试]中不存在"bb"
;----【元素支持变量下标(示例)】
Mov N1 1
MOV L$测试[<$Str(N1)>] 23
sendmsg 7 输出结果:<$str(L$测试[<$Str(N1)>])>


[@inc测试]
#act
inc L$测试 尾部增加元素
inc L$测试 第1个元素增加内容
MOV N$id 1
INC L$测试[<$str(N$id)>] 第2个元素增加内容
sendmsg 7 当前(L$测试)的完整内容:<$STR(L$测试)>
sendmsg 7 当前(L$测试)的内容:<$STR(L$测试)>
sendmsg 7 当前(L$测试[<$STR(N$id)>])的内容:<$STR(L$测试[<$STR(N$id)>])>

[@dec测试]
#act
dec L$测试 尾部增加元素
dec L$测试 第1个元素增加内容
sendmsg 7 当前(L$测试)的完整内容:<$STR(L$测试)>
sendmsg 7 当前(L$测试)的内容:<$STR(L$测试)>

注意:指定参数必须是变量名的暂不支持变量嵌套
mov N$当前行数 5
MOV L$变<$str(N$当前行数)>量 [赋值内容,赋值内容2]

;以下方法暂不支持,必要时再更新
;MOV N$id 1
;dec L$测试[<$str(N$id)>] 第2个元素增加内容
;sendmsg 7 当前(L$测试[<$STR(N$id)>])的内容:<$STR(L$测试[<$STR(N$id)>])>

[@清空]
#act
MOV L$测试
sendmsg 7 输出结果:<$str(L$测试)>
Mov L$测试 []
sendmsg 7 输出结果:<$str(L$测试)>

OR
MOV L$测试 ;----赋值123
MOV L$测试 ;------清空
sendmsg 6 <$str(L$测试)> ;----结果毛都没有 变量都不显示 什么都没

;-----相关操作命令-

检所有子元素均是数字:
CheckListAllDigit 元素变量
#IF
#ACT
MOV L$测试
#IF
CheckListAllDigit L$测试
#ACT
sendmsg 6 <$STR(L$测试)>中的各子元素全是数字
#ELSEACT
sendmsg 6 <$STR(L$测试)>中有子元素不是数字

获取元素中的最大数字值:
GetListMaxVar 元素变量名 保存变量
获取元素中的最小数字值:
GetListMinVar 元素变量名 保存变量

#IF
#ACT
MOV L$测试
#IF
CheckListAllDigit L$测试
#ACT
GetListMaxVar L$测试 S100
GetListMinVar L$测试 S101
sendmsg 7 输出结果:<$str(L$测试)>中的最大值为<$str(S100)>,最小值为<$str(S101)>
#ELSEACT
sendmsg 7 <$str(L$测试)>内有非法数值,取值失败
;输出结果:中的最大值为88,最小值为11
****************** 以上2个命令必须要求元素中的所有子元素必须是数字,否则得到的结果是error

元素翻转(反序):
ReverseList 元素变量名 保存元素变量
#IF
#ACT
MOV L$测试
ReverseList L$测试 L$测试
sendmsg 7 输出结果:<$str(L$测试)>
;输出结果:

元素排序:
SortList 待排序元素变量 保存结果元素变量 排序方式(空或0:升序-从低到高;1:降序-从高到低) 排序依据(0或空:根据数值排序;1:根据文本排序)
***** 当排序依据为数值时,元素中的所有子元素必须全是数字,否则会得到
MOV L$测试
SortList L$测试 L$测试2 0 0
sendmsg 7 按数字升序排序输出结果:<$str(L$测试2)>
;按数字升序排序输出结果:
MOV L$测试
SortList L$测试 L$测试2 1 0
sendmsg 7 按数字降序排序输出结果:<$str(L$测试2)>
;按数字降序排序输出结果:
MOV L$测试
SortList L$测试 L$测试2 0 1
sendmsg 7 按文本升序排序输出结果:<$str(L$测试2)>
;按文本升序排序输出结果:
MOV L$测试
SortList L$测试 L$测试2 1 1
sendmsg 7 按文本降序排序输出结果:<$str(L$测试2)>
;按文本降序排序输出结果:



18063006796 发表于 2024-3-12 19:34:01

支持。,支持

15810921128 发表于 2024-3-13 15:37:50

支持。,支持

xuesheng0809 发表于 2024-4-28 00:39:43

士大夫撒地方送达
页: [1]
查看完整版本: 建议增加数组变量,感觉很方便的功能(搬运其他引擎说明)