Domanda

Voglio essere in grado di fare:

For Each thing In things
End For

ASP CLASSICO - NON .NETTO!

È stato utile?

Soluzione

Qualunque sia la vostra [cose] sono devono essere scritti al di fuori di VBScript.

In VB6, è possibile scrivere una Raccolta Personalizzata di classe, quindi, è necessario compilare una DLL ActiveX e registrarlo sul tuo server web per l'accesso.

Altri suggerimenti

Qualcosa di simile a questo?

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

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

Vedere www.w3schools.com.

Se si desidera associare le chiavi e i valori utilizzare un oggetto dictionary invece:

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

Il più vicino si sta andando ottenere è l'uso di un Dizionario (come detto da Pacifika)

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

Ma io loop attraverso i miei dizionari come una collezione

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

È possibile scorrere l'intero dizionario in questo modo la scrittura dei valori, che sarebbe simile a questa:

Scott
20

È anche possibile fare questo

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

Che dovrebbe produrre

 Name: Scott
 Age: 20

Un approccio che ho usato prima è quella di utilizzare una proprietà della collezione, che restituisce un array, che possono essere iterati.

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

Scorrere come:

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

Come Brett ha detto, è meglio utilizzare un componente di visual basic per creare collezioni.Dizionario oggetti non sono molto comunemente utilizzati in ASP se non per necessità specifiche applicazioni di base.

Essere MOLTO attentamente sull'uso di VB Script Oggetto del Dizionario!
Appena scoperto questo "autovivication"cosa, nativo su questo oggetto: http://en.wikipedia.org/wiki/Autovivification

Così, quando è necessario confrontare i valori, non usare MAI un boolen confronto come:
If objDic.Item("varName") <> "" Then...
Questo automaticamente aggiungere la chiave "varName"per il dizionario (se non esiste, con un valore vuoto) , per la realizzazione di valutare l'espressione booleana.

Se necessario, utilizzare invece If objDic.Exists("varName").

Basta passare un paio di giorni a bussare pareti, con questo Mcrosoft "funzione"...
vbscript-dizionario-oggetto-creare-un-tasto-che-non-esiste-ma-oggi-in-un-altra-oggetto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top