Tôi muốn có thể làm:Làm cách nào để duyệt qua một bộ sưu tập trong ASP cổ điển?
For Each thing In things
End For
CLASSIC ASP - NOT .NET!
Tôi muốn có thể làm:Làm cách nào để duyệt qua một bộ sưu tập trong ASP cổ điển?
For Each thing In things
End For
CLASSIC ASP - NOT .NET!
Bất kỳ nội dung nào của bạn cần được viết bên ngoài VBScript.
Trong VB6, you can write a Custom Collection class, thì bạn sẽ cần phải biên dịch thành ActiveX DLL và đăng ký nó trên máy chủ web của bạn để truy cập vào nó.
Một cái gì đó như thế này?
dim cars(2),x
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"
For Each x in cars
response.write(x & "<br />")
Next
Xem www.w3schools.com.
Nếu bạn muốn kết hợp khóa và giá trị use a dictionary object thay vì:
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
Gần nhất bạn sẽ nhận được được sử dụng một từ điển (như đã đề cập bởi Pacifika)
Dim objDictionary
Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.CompareMode = vbTextCompare 'makes the keys case insensitive'
objDictionary.Add "Name", "Scott"
objDictionary.Add "Age", "20"
Nhưng tôi vòng qua từ điển của tôi giống như bộ sưu tập
For Each Entry In objDictionary
Response.write objDictionary(Entry) & "<br />"
Next
Bạn có thể lặp lại vi Từ điển lốp theo cách này viết ra các giá trị mà sẽ trông như thế này:
Scott
20
Bạn cũng có thể làm được điều này
For Each Entry In objDictionary
Response.write Entry & ": " & objDictionary(Entry) & "<br />"
Next
nào sẽ tạo ra
Name: Scott
Age: 20
Như Brett nói, nó tốt hơn để sử dụng thành phần vb để tạo bộ sưu tập. Các đối tượng từ điển không được sử dụng phổ biến trong ASP trừ khi các ứng dụng dựa trên nhu cầu cụ thể.
Một cách tiếp cận mà tôi đã sử dụng trước đây là sử dụng thuộc tính của bộ sưu tập trả về một mảng, có thể được lặp lại.
Class MyCollection
Public Property Get Items
Items = ReturnItemsAsAnArray()
End Property
...
End Class
Lặp như:
Set things = New MyCollection
For Each thing in things.Items
...
Next
Hãy rất cẩn thận về việc sử dụng VB Script điển Object!
Chỉ cần khám phá này "autovivication" điều, có nguồn gốc trên đối tượng này: http://en.wikipedia.org/wiki/Autovivification
Vì vậy, khi bạn cần phải so sánh giá trị, KHÔNG BAO GIỜ sử dụng một so sánh boolen như:
If objDic.Item("varName") <> "" Then
...
chí này tự động thêm khóa "varName
" vào từ điển (nếu nó không tồn tại, có giá trị trống), để thực hiện đánh giá biểu thức boolean.
Nếu cần, hãy sử dụng thay vì If objDic.Exists("varName")
.
Chỉ cần dành một vài ngày gõ tường, với Mcrosoft này "tính năng" ...
vbscript-dictionary-object-creating-a-key-which-never-existed-but-present-in-another-object