|
|
本帖最后由 香川群子 于 2013-5-8 11:32 编辑
xd3210 发表于 2013-5-7 11:04 
d(arr(i,1))=""是如何选出不重复名字来的呢?我是这样理解的:1)d(arr(i,1))=""是d.add arr(i,1),""的变 ...
对于楼主的问题:【字典语句 d(arr(i,1))="" 是如何排除重复项的?】
21楼的解释是正确的。
但可能楼主还是没有看懂你的说明。
…………
对于楼主的这个问题,可能需要更直接、更现实的比喻来说明。
1. 字典
字典是一种脚本工具ScriptingTool,相当于是一个【暗箱盒子】
所谓【暗箱盒子】就是,你输入一些参数、变量,
这个【暗箱盒子】就按照一定的规则对你的输入的参数、变量进行加工,
然后直接【输出】加工后的结果。
这个加工过程是已经封装好的、复杂的代码。因此【并不需要你知道详细过程】。
楼主你同意这个观点么?
如果同意,我们就继续。
2. 字典 规则
所谓字典规则,就是这个【暗箱工具】处理问题的原则。
规则如下:
a. 字典建立
Set d = CreateObject("Scripting.Dictionary")
或 Dim d as New Dictionary
推荐用第一种语句。
(第2种语句功能更强大,但需要事先做好字典的功能的加载引用。)
加载 C:\WINDOWS\SYSTEM32\SCRRUN.DLL (直接运行 regsvr32 scrrun.dll)
或在VBE中引用 Microsoft Scripting Runtime
b. 字典关键字/词 即key的添加
标准语句 dic.Add key1, item1
简写语句 d(key1) = item1
解释: 字典实际上也可以看做是数组或集合,
字典拥有的每一个元素具有2个不同属性的数据,而且它们是成对出现的。
即key 和对应的 item
它们的特性如下:
1. key是唯一的。
2. itme无唯一性限制,但item从属于key,也就是说item是key的关联/或附加信息。
字典功能启动以后,你在每次添加key时:
【字典暗箱】会自动比对是否已经有相同值,
确认没有就作为新的key加入字典,即字典中的元素增加了。
但如果确认已经有重复key存在,那么就【不再增加字典元素】了。
但是,可以根据你的要求,对该key的item内容进行修改,
或者不管三七二十一赋予一个任意的内容
……习惯上让它="",这个就是 d(arr(i,1))="" 的来历。
这里还可展开来,讲很多内容……暂且略过。
于是最后,当你利用【字典暗箱】检查比对完成所有arr(i,1)内容后,
就会得到一个仅仅由不重复的key组成的数组集合d.keys
把它读取出来,就得到了字典的关键字的不重复项。
至于item内容,是【字典暗箱方法】中可以进一步扩展的内容,
但如果楼主的目的仅仅是排除不重复项目,那么就完全不用去理会item项目属性了。
这个,就是只需要遍历执行 d(arr(i,1))="" 这么简单的一句,就能排除重复项的原因。
具体暗箱的逻辑作用可以解释为:
for i = 1 to ubound(arr)
if arr(i,1) is new key then
d.add new key as item = ""
elseif arr(i,1) is old key then
d. old key as item = ""
endif
next
注意: 上面这几句代码只是逻辑说明,不是可执行的语句代码。
|
评分
-
1
查看全部评分
-
|