Jak mohu přejít sbírku v klasickém ASP?

hlasů
13

Chci, aby bylo možné provést:

For Each thing In things
End For

CLASSIC ASP - NENÍ NET!

Položena 05/08/2008 v 14:30
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
12

Něco takového?

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

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

Viz www.w3schools.com .

Chcete-li přiřadit klíče a hodnoty použít slovník objekt namísto:

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
Odpovězeno 11/08/2008 v 13:39
zdroj uživatelem

hlasů
3

Ať už je váš [věci] je třeba uvádět mimo VBScript.

V VB6, můžete napsat třídy vlastní kolekce , pak budete muset zkompilovat do ActiveX DLL a zaregistrujte jej na svém webovém serveru k přístupu k nim.

Odpovězeno 05/08/2008 v 14:42
zdroj uživatelem

hlasů
2

Nejblíže se dostane používá slovník (jak uvádí Pacifika)

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

Ale já procházet mých slovníků jako kolekce

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

Můžete smyčku přes celý slovníku tento způsob psaní mimo hodnoty, které bude vypadat takto:

Scott
20

Můžete si také udělat

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

Který by produkoval

 Name: Scott
 Age: 20
Odpovězeno 16/09/2008 v 20:09
zdroj uživatelem

hlasů
1

Jedním ze způsobů jsem použil předtím je použít vlastnost kolekce, která vrací matici, která může být opakována u konce.

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

Iteraci jako:

Set things = New MyCollection
For Each thing in things.Items
    ...
Next
Odpovězeno 23/11/2008 v 05:40
zdroj uživatelem

hlasů
0

Buďte velmi opatrně pomocí VB Script slovník objekt!
Jen objevovat tento „ autovivication “ věc, rodák na tomto objektu: http://en.wikipedia.org/wiki/Autovivification

Takže, když budete potřebovat k porovnání hodnot, NIKDY nepoužívejte boolen srovnání, jako jsou:
If objDic.Item("varName") <> "" Then...
To bude automaticky přidat klíč „ varName“ do slovníku (pokud neexistuje, s prázdnou hodnotou), za účelem výkonu na vyhodnocení logická výraz.

V případě potřeby použít místo If objDic.Exists("varName").

Jen strávit několik dní klepání stěny s tímto Mcrosoft " funkci " ...
VBScript-slovník-object-vytvářet-a-key-který-nikdy neexistoval, ale přítomná-in-jiné-objekt

Odpovězeno 21/05/2014 v 09:43
zdroj uživatelem

hlasů
0

Jak řekl Brett, je lepší použít vb komponentu pro vytvoření sbírky. Slovník objekty nejsou velmi běžně používané v ASP, pokud není pro specifické aplikace založené potřebnosti.

Odpovězeno 23/09/2008 v 07:15
zdroj uživatelem

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