Question

Je veux être capable de faire:

For Each thing In things
End For

ASP CLASSIQUE - PAS .NET!

Était-ce utile?

La solution

Quel que soit votre [choses] sont doivent être écrites en dehors de VBScript.

En VB6, vous pouvez écrire une classe de Collection Personnalisée, alors vous aurez besoin de compiler une DLL ActiveX et l'enregistrer sur votre serveur pour y accéder.

Autres conseils

Quelque chose comme cela?

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

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

Voir www.w3schools.com.

Si vous souhaitez associer des clés et des valeurs utiliser un objet dictionary au lieu de cela:

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

Le plus proche que vous allez obtenir est à l'aide d'un Dictionnaire (comme mentionné par Pacifika)

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

Mais je boucle mes dictionnaires comme une collection

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

Vous pouvez faire une boucle à travers l'ensemble du dictionnaire de cette façon, écrire les valeurs qui ressemblerait à ceci:

Scott
20

Vous pouvez également le faire

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

Qui permettrait de produire de

 Name: Scott
 Age: 20

Une approche que j'ai utilisé avant est d'utiliser une propriété de la collection qui renvoie un tableau, qui peut être itéré.

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

Itérer comme:

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

Comme Brett, a déclaré, de son mieux pour utiliser un composant visual basic pour créer des collections.Dictionnaire des objets ne sont pas très couramment utilisés dans les ASP moins que pour le besoin spécifique en fonction des applications.

Être TRÈS soigneusement à l'aide d'un Script VB Dictionnaire de l'Objet!
Viens de découvrir le "autovivication"chose, natif sur cet objet: http://en.wikipedia.org/wiki/Autovivification

Donc, lorsque vous avez besoin de comparer des valeurs, ne JAMAIS utiliser un boolen comparaison:
If objDic.Item("varName") <> "" Then...
Ce sera automatiquement ajouter la clé "varName"pour le dictionnaire (si elle n'existe pas, avec une valeur vide) , afin de mener à bien l'évaluation de l'expression booléenne.

Si nécessaire, utiliser à la place If objDic.Exists("varName").

Il suffit de passer quelques jours à frapper les murs, avec cette Mcrosoft "fonctionnalité"...
vbscript-dictionnaire-de l'objet de la création-d'un-clé-qui-jamais existé-mais-present-dans-l'autre-objet

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top