Quiero ser capaz de hacer:¿Cómo atravieso una colección en ASP clásico?
For Each thing In things
End For
ASP clásico - NO NET!
Quiero ser capaz de hacer:¿Cómo atravieso una colección en ASP clásico?
For Each thing In things
End For
ASP clásico - NO NET!
Sean cuales sean sus [cosas] que deban escribirse fuera de VBScript.
En VB6, you can write a Custom Collection class, tendrá que compilar en una DLL ActiveX y registrarla en su servidor web para acceder a ella.
¿Algo como esto?
dim cars(2),x
cars(0)="Volvo"
cars(1)="Saab"
cars(2)="BMW"
For Each x in cars
response.write(x & "<br />")
Next
Ver www.w3schools.com.
Si desea asociar claves y valores use a dictionary object lugar:
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
Lo más cerca que se va a conseguir es el uso de un diccionario (según lo mencionado por Pacifika)
Dim objDictionary
Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.CompareMode = vbTextCompare 'makes the keys case insensitive'
objDictionary.Add "Name", "Scott"
objDictionary.Add "Age", "20"
Pero bucle a través mis diccionarios como una colección
For Each Entry In objDictionary
Response.write objDictionary(Entry) & "<br />"
Next
Puede recorrer el en Diccionario de neumáticos de esta manera escribir los valores que se vería así:
Scott
20
También puede hacer esto
For Each Entry In objDictionary
Response.write Entry & ": " & objDictionary(Entry) & "<br />"
Next
que produciría
Name: Scott
Age: 20
Como dijo Brett, es mejor use un componente vb para crear colecciones. Los objetos de diccionario no se usan con mucha frecuencia en ASP a menos que sea para aplicaciones basadas en necesidades específicas.
Un enfoque que he usado antes es utilizar una propiedad de la colección que devuelve una matriz, que puede repetirse.
Class MyCollection
Public Property Get Items
Items = ReturnItemsAsAnArray()
End Property
...
End Class
Iterar como:
Set things = New MyCollection
For Each thing in things.Items
...
Next
ser muy cuidadosamente sobre el uso de diccionario VB Script objeto!
Sólo descubrir este "autovivication" cosa, nativa en este objeto: http://en.wikipedia.org/wiki/Autovivification
lo tanto, cuando es necesario comparar los valores, utilice NUNCA una comparación boolen como:
If objDic.Item("varName") <> "" Then
...
Esta voluntad automáticamente agregue la clave "varName
" al diccionario (si no existe, con un valor vacío), para continuar evaluando la expresión booleana.
Si es necesario, utilice en su lugar If objDic.Exists("varName")
.
simplemente pasar unos días golpeando paredes, con este Mcrosoft "función" ...
vbscript-dictionary-object-creating-a-key-which-never-existed-but-present-in-another-object