用 AutoHotkey 做一个文件查找工具之二:数组的使用
2010-05-10 10:47
423 查看
在前一篇中测试证明确实可以在AHK中实现虚拟列表后,接下来要做的就是考虑存储显示内容的问题了。
由于虚拟列表要求我们自行实现显示内容的存储,也就是说需要存储一组结构类似的变量,那就必然要使用数组。数组的一个例子是:
可以看到,AHK中的数组实际上就是动态构造的一组名字有一定规律(通常和序号有关)的变量罢了。
那么如果想要把这样的代码抽出来作为一个函数能实现吗?
恐怕只有一个比较怪的方法来实现:通过传递数组名(字符串)到函数中解释构造到全局作用域(通过global控制),当然这样的函数必然会破坏函数的独立性(实际上就是在函数中构造/访问全局变量),但暂时找不到别的方法了,下面是个例子:
由于虚拟列表要求我们自行实现显示内容的存储,也就是说需要存储一组结构类似的变量,那就必然要使用数组。数组的一个例子是:
nArrayCount := 3 loop, %nArrayCount% { arr%A_Index%_Name := "Killer" A_Index } loop, %nArrayCount% { MsgBox % arr%A_Index%_Name }
可以看到,AHK中的数组实际上就是动态构造的一组名字有一定规律(通常和序号有关)的变量罢了。
那么如果想要把这样的代码抽出来作为一个函数能实现吗?
恐怕只有一个比较怪的方法来实现:通过传递数组名(字符串)到函数中解释构造到全局作用域(通过global控制),当然这样的函数必然会破坏函数的独立性(实际上就是在函数中构造/访问全局变量),但暂时找不到别的方法了,下面是个例子:
nArrayCount := 3 InitArray("myArr1", "DumbAss", nArrayCount) InitArray("myArr2", "Fool", nArrayCount) loop, %nArrayCount% { strMsg .= myArr1%A_Index%_Name A_Tab strMsg .= myArr2%A_Index%_Name "`n" } MsgBox %strMsg% ExitApp InitArray(arrNamePrefix, strPlayerName, nArrayCount) { global ; 这就是在函数中“构造数组”的重点 loop, %nArrayCount% { %arrNamePrefix%%A_Index%_Name := strPlayerName A_Index } }
相关文章推荐
- 用 AutoHotkey 做一个文件查找工具之二:数组的使用
- 用 AutoHotkey 做一个文件查找工具之三:获取文件列表到数组中并在虚拟列表上显示
- 用 AutoHotkey 做一个文件查找工具之三:获取文件列表到数组中并在虚拟列表上显示
- 用 AutoHotkey 做一个文件查找工具之四:根据输入实时更新过滤文件列表
- 用 AutoHotkey 做一个文件查找工具之一:实现虚拟列表
- 用 AutoHotkey 做一个文件查找工具之一:实现虚拟列表
- 用 AutoHotkey 做一个文件查找工具之四:根据输入实时更新过滤文件列表
- 使用数组,编写一个任意进制正整数转换为十进制的转换工具。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- wget用法wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.
- 对使用in_array()对同一个数组多次查找不同值时效率低下的优化策略
- 【逆向工具】IDA使用1-VS2015版本debug查找Main函数,加载符号文件
- 一个查找替换文件的简单工具
- 【C语言】没事可以试试这个小程序,使用文件操作,模拟实现一个简单的文件拷贝工具!
- 使用while循环和折半法查找一个整数是否在一个排序的int类型数组中
- 使用简单工厂写一个可复用的批量文件修改工具
- everything 全盘文件查找工具及正则表达式的使用
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。