Comment puis-je parcourir une collection en ASP classique?

voix
13

Je veux être en mesure de le faire:

For Each thing In things
End For

CLASSIC ASP - NOT .NET!

Créé 05/08/2008 à 14:30
source utilisateur
Dans d'autres langues...                            


6 réponses

voix
12

Quelque chose comme ça?

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 les clés et les valeurs utilisez un objet dictionnaire à la place:

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
Créé 11/08/2008 à 13:39
source utilisateur

voix
3

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

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

Créé 05/08/2008 à 14:42
source utilisateur

voix
2

Le plus proche vous allez obtenir est d'utiliser un dictionnaire (comme mentionné par Pasifika)

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

Mais boucle I à mes dictionnaires comme une collection

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

Vous pouvez parcourir l'ensemble du dictionnaire ainsi d'écrire les valeurs qui ressemblerait à ceci:

Scott
20

Vous pouvez également faire

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

Ce qui produirait

 Name: Scott
 Age: 20
Créé 16/09/2008 à 20:09
source utilisateur

voix
1

Une approche que je l'ai utilisé avant est d'utiliser une propriété de la collection qui retourne 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
Créé 23/11/2008 à 05:40
source utilisateur

voix
0

Soyez très soigneusement sur l' utilisation de VB Script objet Dictionary!
Il suffit de découvrir ce « autovivication chose », native sur cet objet: http://en.wikipedia.org/wiki/Autovivification

Donc, quand vous devez comparer les valeurs, ne jamais utiliser une comparaison Boolen comme:
If objDic.Item("varName") <> "" Then...
Cela automatiquement ajouter la touche « varName» dans le dictionnaire (si elle n'existe pas, avec une valeur vide), afin de poursuivre l' évaluation l'expression booléenne.

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

Il suffit de passer quelques jours les murs frapper, avec cette Mcrosoft « fonctionnalité » ...
vbscript-dictionnaire-objet-création-une-clé qui-jamais existé, mais présents en un autre objet

Créé 21/05/2014 à 09:43
source utilisateur

voix
0

Comme l'a dit Brett, son préférable d'utiliser un composant vb pour créer des collections. objets dictionnaire ne sont pas très couramment utilisés dans les ASP à moins que pour les applications spécifiques des besoins.

Créé 23/09/2008 à 07:15
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more