2008-08-05 71 views

回答

3

无论你的[东西]需要写在VBScript之外。

在VB6中,you can write a Custom Collection class,那么你需要编译成一个ActiveX DLL并将它注册到你的网络服务器来访问它。

12

像这样?

dim cars(2),x 
cars(0)="Volvo" 
cars(1)="Saab" 
cars(2)="BMW" 

For Each x in cars 
    response.write(x & "<br />") 
Next 

参见www.w3schools.com

如果你想键关联和值use a dictionary object代替:

Dim objDictionary 
Set objDictionary = CreateObject("Scripting.Dictionary") 
objDictionary.Add "Name", "Scott" 
objDictionary.Add "Age", "20" 
if objDictionary.Exists("Name") then 
    ' Do something 
else 
    ' Do something else 
end if 
2

您打算使用词典(由Pacifika提到的)

Dim objDictionary 
Set objDictionary = CreateObject("Scripting.Dictionary") 
objDictionary.CompareMode = vbTextCompare 'makes the keys case insensitive' 
objDictionary.Add "Name", "Scott" 
objDictionary.Add "Age", "20" 

但我遍历得到最接近我的字典喜欢集合

For Each Entry In objDictionary 
    Response.write objDictionary(Entry) & "<br />" 
Next 

你可以通过en循环轮胎字典这样写出来的值这将是这样的:

Scott 
20 

你也可以做到这一点

For Each Entry In objDictionary 
    Response.write Entry & ": " & objDictionary(Entry) & "<br />" 
Next 

将产生

Name: Scott 
Age: 20 
0

正如布雷特说,它能够更好地使用一个vb组件来创建集合。字典对象在ASP中不常用,除非是针对特定需求的应用程序。

1

我之前使用过的一种方法是使用返回数组的属性,该数组可以迭代。

Class MyCollection 
    Public Property Get Items 
     Items = ReturnItemsAsAnArray() 
    End Property 
    ... 
End Class 

迭代,如:

Set things = New MyCollection 
For Each thing in things.Items 
    ... 
Next 
0

非常小心地使用VB脚本Dictionary对象!
才发现这个 “autovivication” 的东西,天然的这个对象上:http://en.wikipedia.org/wiki/Autovivification

所以,当你需要比较值,不要使用像boolen比较:
If objDic.Item("varName") <> "" Then ...
这将自动将字符串“varName”添加到字典中(如果它不存在,则为空值),以便继续评估布尔表达式。

如果需要,请改用If objDic.Exists("varName")

就花了几天敲墙,这Mcrosoft “功能” ...
vbscript-dictionary-object-creating-a-key-which-never-existed-but-present-in-another-object