Πώς μπορώ να διασχίσει μια συλλογή σε κλασικό ASP;

ψήφοι
13

Θέλω να είμαι σε θέση να το κάνουμε:

For Each thing In things
End For

CLASSIC ASP - ΔΕΝ .NET!

Δημοσιεύθηκε 05/08/2008 στις 14:30
πηγή χρήστη
Σε άλλες γλώσσες...                            


6 απαντήσεις

ψήφοι
12

Κάτι σαν αυτό?

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

For Each x in cars
  response.write(x & "<br />")
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
Απαντήθηκε 11/08/2008 στις 13:39
πηγή χρήστη

ψήφοι
3

Ό, τι σας [τα πράγματα] που πρέπει να γραφτεί έξω από VBScript.

Στην VB6, μπορείτε να γράψετε μια τάξη Προσαρμοσμένη Συλλογή , τότε θα πρέπει να συγκεντρώσει σε ένα ActiveX DLL και να καταχωρήσετε το στο διακομιστή σας για να αποκτήσετε πρόσβαση.

Απαντήθηκε 05/08/2008 στις 14:42
πηγή χρήστη

ψήφοι
2

Το πιο κοντινό θα έχετε την ευκαιρία να πάρετε χρησιμοποιεί ένα λεξικό (όπως αναφέρθηκε από 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) & "<br />"
Next

Μπορείτε να βρόχο σε όλο το λεξικό αυτό τον τρόπο γραφής από τις τιμές που θα μοιάζει με αυτό:

Scott
20

Μπορείτε επίσης να το κάνετε αυτό

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

Ποια θα παράγει

 Name: Scott
 Age: 20
Απαντήθηκε 16/09/2008 στις 20:09
πηγή χρήστη

ψήφοι
1

Μια προσέγγιση που έχω χρησιμοποιήσει στο παρελθόν είναι να χρησιμοποιήσετε μια ιδιότητα της συλλογής που επιστρέφει έναν πίνακα, που μπορεί να επαναληφθεί πάνω.

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

Επαναλάβει, όπως:

Set things = New MyCollection
For Each thing in things.Items
    ...
Next
Απαντήθηκε 23/11/2008 στις 05:40
πηγή χρήστη

ψήφοι
0

Να είστε πολύ προσεκτικά χρησιμοποιώντας VB Script Λεξικό Αντικείμενο!
Μόλις ανακαλύψετε αυτό το « autovivication » πράγμα, μητρική σε αυτό το αντικείμενο: http://en.wikipedia.org/wiki/Autovivification

Έτσι, όταν θα πρέπει να συγκρίνουν τιμές, χρησιμοποιήστε ΠΟΤΕ ένα boolen σύγκριση, όπως:
If objDic.Item("varName") <> "" Then...
Αυτό θα αυτόματα να προσθέσετε το πλήκτρο « varName» στο λεξικό (αν δεν υπάρχει, με μια κενή τιμή), προκειμένου να συνεχίσει την αξιολόγηση ο λογικός έκφραση.

Αν χρειάζεται, χρησιμοποιήστε αντ 'αυτού If objDic.Exists("varName").

Μόλις περάσετε μερικές μέρες να χτυπήσει τους τοίχους, με αυτό το «Mcrosoft το χαρακτηριστικό » ...
VBScript-λεξικό-αντικείμενο-δημιουργία-ένα-κλειδί, που-δεν-υπήρχε-αλλά-σήμερα-το-άλλο-αντικείμενο

Απαντήθηκε 21/05/2014 στις 09:43
πηγή χρήστη

ψήφοι
0

Όπως είπε ο Brett, καλύτερα να χρησιμοποιήσετε ένα συστατικό vb για να δημιουργήσετε συλλογές. Λεξικό αντικείμενα δεν χρησιμοποιούνται πολύ συχνά σε ASP, εκτός εάν για συγκεκριμένες εφαρμογές που βασίζονται ανάγκη.

Απαντήθηκε 23/09/2008 στις 07:15
πηγή χρήστη

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