switch for example classic asp asp-classic vbscript

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!



¿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