मैं क्लासिक एएसपी में संग्रह कैसे पार करूं?

मैं ऐसा करने में सक्षम होना चाहता हूं:

For Each thing In things
End For

क्लासिक एएसपी - नहीं .NET!

0
जोड़ा संपादित
विचारों: 2

6 उत्तर

वीबीस्क्रिप्ट के बाहर जो कुछ भी आपके [चीजों] को लिखा जाना चाहिए।

वीबी 6 में, आप एक कस्टम संग्रह वर्ग लिख सकते हैं, तो आपको संकलन करने की आवश्यकता होगी एक ActiveX DLL पर और इसे एक्सेस करने के लिए इसे अपने वेबसर्वर पर पंजीकृत करें।

0
जोड़ा

कुछ इस तरह?

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

For Each x in cars
  response.write(x & "
") Next

www.w3schools.com देखें।

यदि आप कुंजी और मूल्यों को इसके बजाय एक शब्दकोश ऑब्जेक्ट का उपयोग करना चाहते हैं:

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
0
जोड़ा

एक दृष्टिकोण जो मैंने पहले उपयोग किया है वह उस संग्रह की संपत्ति का उपयोग करना है जो एक सरणी लौटाता है, जिसे फिर से चालू किया जा सकता है।

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

Iterate की तरह:

Set things = New MyCollection
For Each thing in things.Items
    ...
Next
0
जोड़ा

Be VERY carefully on using VB Script Dictionary Object!
Just discover this "autovivication" thing, native on this object: http://en.wikipedia.org/wiki/Autovivification

So, when you need to compare values, NEVER use a boolen comparison like:
If objDic.Item("varName") <> "" Then...
This will automatically add the key "varName" to the dictionary (if it doesn't exist, with an empty value) , in order to carry on evaluating the boolean expression.

यदि आवश्यक हो, तो इसके बजाय यदि objDic.Exists ("varName") का उपयोग करें।

Just spend a few days knocking walls, with this Mcrosoft "feature"...
vbscript-dictionary-object-creating-a-key-which-never-existed-but-present-in-another-object

0
जोड़ा

सबसे नज़दीकी आप एक शब्दकोश का उपयोग कर रहे हैं (जैसा कि Pacifika द्वारा वर्णित है)

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

लेकिन मैं अपने शब्दकोशों के माध्यम से संग्रह की तरह लूप करता हूं

For Each Entry In objDictionary
  Response.write objDictionary(Entry) & "
" Next

आप संपूर्ण शब्दकोश के माध्यम से इस तरह के मूल्यों को लिखने के तरीके से लूप कर सकते हैं:

Scott
20

आप यह भी कर सकते हैं

For Each Entry In objDictionary
  Response.write Entry & ": " & objDictionary(Entry) & "
" Next

जो उत्पादन करेगा

 Name: Scott
 Age: 20
0
जोड़ा

ब्रेट ने कहा, संग्रह बनाने के लिए एक वीबी घटक का उपयोग करना बेहतर है। शब्दकोश वस्तुओं को आमतौर पर एएसपी में उपयोग नहीं किया जाता है जब तक विशिष्ट आवश्यकता आधारित अनुप्रयोगों के लिए नहीं।

0
जोड़ा