Hvordan kan jeg krysse en samling i klassisk ASP?

stemmer
14

Jeg ønsker å være i stand til å gjøre:

For Each thing In things
End For

CLASSIC ASP - IKKE NET!

Publisert på 05/08/2008 klokken 13:30
kilden bruker
På andre språk...                            


6 svar

stemmer
12

Noe sånt som dette?

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

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

Se www.w3schools.com .

Hvis du ønsker å knytte nøkler og verdier bruker en ordbok objekt i stedet:

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
Svarte 11/08/2008 kl. 12:39
kilden bruker

stemmer
3

Uansett [ting] er må være skrevet utenfor VBScript.

I VB6, kan du skrive en Custom Collection klasse , så må du kompilere til en ActiveX DLL og registrere den på webserveren din tilgang til den.

Svarte 05/08/2008 kl. 13:42
kilden bruker

stemmer
2

Det nærmeste du kommer til å få bruker en ordbok (som nevnt av Pacifika)

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

Men jeg sløyfe gjennom mine ordbøker som en samling

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

Du kan sløyfe gjennom hele ordboken på denne måten å skrive ut de verdiene som ville se slik ut:

Scott
20

Du kan også gjøre dette

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

Noe som vil gi

 Name: Scott
 Age: 20
Svarte 16/09/2008 kl. 19:09
kilden bruker

stemmer
1

En tilnærming jeg har brukt før, er å bruke en eiendom av samlingen som returnerer en matrise, som kan iterated over.

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

Reagere som:

Set things = New MyCollection
For Each thing in things.Items
    ...
Next
Svarte 23/11/2008 kl. 04:40
kilden bruker

stemmer
0

Vær svært nøye på å bruke VB Script Ordbok Object!
Bare oppdage denne " autovivication " ting, innfødte på dette objektet: http://en.wikipedia.org/wiki/Autovivification

Så, når du trenger å sammenligne verdier, aldri bruke en boolen sammenligning som:
If objDic.Item("varName") <> "" Then...
Dette vil automatisk legge nøkkelen " varName" i ordlisten (hvis den ikke eksisterer, med en tom verdi), for å bære på å vurdere det boolske uttrykk.

Hvis det er nødvendig, bruke i stedet If objDic.Exists("varName").

Bare tilbringe noen dager banket vegger, med denne Mcrosoft " funksjonen " ...
VBScript-ordbok-objekt-skaper-en-key-som-aldri-eksistert-men-stede-i-en-objekt

Svarte 21/05/2014 kl. 08:43
kilden bruker

stemmer
0

Som Brett sagt, er det bedre å bruke en vb komponent for å lage samlinger. Ordbok objekter er ikke veldig ofte brukt i ASP mindre for spesifikke behov baserte applikasjoner.

Svarte 23/09/2008 kl. 06:15
kilden bruker

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