asp-classic - for - submit asp classic
¿Cómo atravieso una colección en ASP clásico? (6)
Quiero ser capaz de hacer:
For Each thing In things
End For
ASP CLÁSICO - ¡NO .NET!
Cualesquiera que sean sus [cosas] deben escribirse fuera de VBScript.
En VB6, puede escribir una clase de Colección personalizada , luego 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
Vea www.w3schools.com .
Si desea asociar claves y valores, use un objeto de diccionario en su 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 cercano que va a obtener es usar un diccionario (como lo menciona 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 recorro mis diccionarios como una colección
For Each Entry In objDictionary
Response.write objDictionary(Entry) & "<br />"
Next
Puede recorrer todo el diccionario de esta manera escribiendo los valores que se verían así:
Scott
20
También puedes 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 usar 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 anteriormente es usar 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
¡TENGA MUCHO cuidado al usar VB Script Dictionary Object!
Solo descubre esta cosa de " autovigilancia ", nativa de este objeto: http://en.wikipedia.org/wiki/Autovivification
Entonces, cuando necesite comparar valores, NUNCA use una comparación de boolen como:
If objDic.Item("varName") <> "" Then
...
Esto agregará automáticamente la clave " varName
" al diccionario (si no existe, con un valor vacío), para continuar evaluando la expresión booleana.
Si es necesario, use en su lugar If objDic.Exists("varName")
.
Solo pase unos días golpeando las paredes, con esta " característica " de Mcrosoft ...
vbscript-dictionary-object-creating-a-key-which-never-exist-but-present-in-another-object