最新消息:

Array数组操作增改删NSIS数组插件

nsis 永恒心锁 3225浏览 0评论
/*
Array.nsh可以为NSIS提供数组支持,原生的NSIS是不支持数组操作的,所以要想实现NSIS的数组操作可以借助其他插件或头文件.
如何使用Array:
1.创建一个数组对象:
${Array} myArray #必须声明在Functions和Section之外.并且要在头文件之后.
${myArray->Init} #初始化一个数组,必须在Function或Section之内.
$myArray_UBound #数组最大下标值
${myArray->Destroy} #释放数组内存资源
${myArray->Set} #替换数组指定下标元素
${myArray->Get} #获得数组指定下标元素值
${myArray->Shift} #向数组末尾附加元素(速度快)
${myArray->Unshift} #删除数组末尾元素,并将元素赋给一个变量保存
${myArray->Push} #向数组的头部插入元素(速度慢)
${myArray->Pop} #从数组的头部删除元素(速度慢)
${myArray->Put} #向数组指定位置插入元素
${myArray->Slice} #将指定位置元素删除并将值赋给一个变量保存
${myArray->Delete} #删除指定元素
${myArray->Clear} #清空数组内的所有数据
${myArray->Reverse} #将数组的所有元素倒序排列
${myArray->Copy} #将数组的整个复制给另一个数组可以选择"w|a"覆盖|附加
${myArray->Exists} #查找数组中的元素,对查找结果进行跳转处理,必须用标签不可以用相对跳转如0 +2
*/
!include "Array.nsh"
!include "Logiclib.nsh"
OutFile "Array_www.yhxs3344.net.exe"
ShowInstDetails show
${Array} firstArray #声明一个数组对象
${Array} secondArray
Section "python丝酷网"
 ${firstArray->Init} #初始化数组
 ${secondArray->Init}
 ##赋值,向数组中加元素
 ${firstArray->Shift} "zero"
 ${firstArray->Shift} "one"
 ${firstArray->Shift} "two"
 #替换数组下标为1的数组
 ${firstArray->Set} 1 "Replace"
 #删除数组末尾元素,并将元素赋给一个变量保存
 ${firstArray->Unshift} $0
 DetailPrint "{firstArray->Unshift} $0"
 #向数组的头部插入元素(速度慢)
 ${firstArray->Push} "front"
 #从数组的头部删除元素(速度慢)
 ${firstArray->Pop} $0
 Detailprint "{firstArray->Pop} $0"
 #向数组指定位置插入元素
 ${firstArray->Put} 1 "Insert"
 #将指定位置元素删除并将值赋给一个变量保存
 ${firstArray->Slice} 1 $0
 DetailPrint "{firstArray->Slice} $0"
 DetailPrint "#遍历数组中的元素"
 StrCpy $R0 $firstArray_UBound #数组内容范围存放在$firstArray_UBound变量中
 ${While} $R0 >= 0
 ${firstArray->Get} $R0 $R1
 Detailprint "$firstArray[$R0] == '$R1'!"
 IntOp $R0 $R0 - 1
 ${EndWhile}
 DetailPrint "#获得数组中的元素个数"
 IntOp $R0 "$firstArray_UBound" + 1
 Detailprint "Count($firstArray) == $R0"
 #将数组的所有元素倒序排列
 ${firstArray->Reverse}
 #将数组的整个复制给另一个数组可以选择"w|a"覆盖|附加
 ${firstArray->Copy} secondArray a
 #查找数组中的元素,对查找结果进行跳转处理,必须用标签不可以用相对跳转如0 +2
 ${firstArray->Exists} "Replace" label1 label2
 label1:
 DetailPrint "#遍历数组中的元素"
 StrCpy $R0 $secondArray_UBound #数组内容范围存放在$firstArray_UBound变量中
 ${While} $R0 >= 0
 ${secondArray->Get} $R0 $R1
 Detailprint "$secondArray[$R0] == '$R1'!"
 IntOp $R0 $R0 - 1
 ${EndWhile}
 label2:
 #清空数组内的所有数据
 ${firstArray->Clear}
 ${secondArray->Clear}
 #释放数组内存资源
 ${firstArray->Destroy}
 ${secondArray->Destroy}
SectionEnd
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » Array数组操作增改删NSIS数组插件

您必须 登录 才能发表评论!