![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 14:20 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助VBS如何创建集合? |
| 可打印版本 958 / 12 |
| 第1楼 zhoushijay | 发表于 2007-05-11 12:27 |
| 高级用户 发帖 375 积分 845 | |
|
求助VBS如何创建集合? 我在编写脚本的时候不止一次的碰到类似的问题了,比如:
q=c(6) for each w in q command next function c(x) for a=1 to 100 for b=1 to 100 if a-x=0 or b-x=0 then c=ab end if next next end function 这是一个创建了函数 c(x)的代码,c(x)是1至100中所有与6相关的数字的集合 以上代码运行出现错误:c(x) 不是一个集合对象 请问类似的集合对象要怎么创建? 我查阅了大量资料,没发现关于集合的材料,其中最相近的就是字典对象Dictionary,但是对这个对象的用法不熟悉,请高手就以上实例用代码演示一下吧? [ Last edited by zhoushijay on 2007-5-11 at 12:44 PM ] |
|
| 第2楼 ttyp | 发表于 2007-05-11 12:40 |
| 初级用户 发帖 84 积分 180 | |
|
Dim d ' 创建变量。
Set d = CreateObject("Scripting.Dictionary") d.Add "a", "Athens" ' 添加一些关键字和项目。 d.Add "b", "Belgrade" d.Add "c", "Cairo" |
|
| 第3楼 zhoushijay | 发表于 2007-05-11 12:42 |
| 高级用户 发帖 375 积分 845 | |
|
2楼兄弟跟教材里的一样,能把上面我写的那段代码演示一下吗?不管什么方法都可以
|
|
| 第4楼 ttyp | 发表于 2007-05-11 12:59 |
| 初级用户 发帖 84 积分 180 | |
|
Set q=c(6)
for each w in q msgbox q(w) next function c(x) Dim d,i Set d = CreateObject("Scripting.Dictionary") i = 1 for a=1 to 10 for b=1 to 10 if a-x=0 or b-x=0 then d.add i,a & ":" & b i = i + 1 end if next Next Set c = d end function |
|
| 第5楼 baomaboy | 发表于 2007-05-11 13:13 |
| 银牌会员 发帖 554 积分 1,513 | |
|
不知这样理解你的意思对不对.
[ Last edited by baomaboy on 2007-5-11 at 01:17 PM ] |
|
| 第6楼 zhoushijay | 发表于 2007-05-11 13:21 |
| 高级用户 发帖 375 积分 845 | |
|
4楼高手,我有一事不明,
Set q=c(6) for each w in q msgbox q(w) next 为什么这里要msgbox q(w) 而不是msgbox(w) 5楼的代码也可以,而且方法很巧妙(可惜今天分数满了不能加了),只是最后多个一个空的元素 不过我跟想学会dictionary的用法 [ Last edited by zhoushijay on 2007-5-11 at 01:22 PM ] |
|
| 第7楼 baomaboy | 发表于 2007-05-11 13:28 |
| 银牌会员 发帖 554 积分 1,513 | |
|
明天记得给我加啊 ^_^
最后多的空值用减1的方法解决了 |
|
| 第8楼 ttyp | 发表于 2007-05-11 13:44 |
| 初级用户 发帖 84 积分 180 | |
|
Set q=c(6)
for each w in q msgbox q(w) next 这里的w是q集合里的key,q(w)是通过key访问该元素的实际内容,可以是任意的对象 |
|
| 第9楼 slore | 发表于 2007-05-11 13:51 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
想不通……直接用数组不行?还搞那么麻烦。
|
|
| 第10楼 zhoushijay | 发表于 2007-05-11 13:58 |
| 高级用户 发帖 375 积分 845 | |
|
明白了,谢谢ttyp高手,
dictionary就是一个数组,而且是简化了的,直接用数组不是跟麻烦 |
|
| 第11楼 ttyp | 发表于 2007-05-11 14:13 |
| 初级用户 发帖 84 积分 180 | |
|
和数组不一样的,数组没有exists功能啊,dictionary有key可以快速定位元素,key是字符串
|
|
| 第12楼 slore | 发表于 2007-05-11 14:14 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
直接数组就不要dictionary了……既然一样。。。干什么还搞他出来……中间你用了几次交换。。。c d q
|
|
| 第13楼 sonicandy | 发表于 2007-05-11 22:56 |
| 中级用户 发帖 91 积分 273 | |
|
我觉得可以理解为哈希表,呵呵
类似c++的map和php中的哈希数组. |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |