Подтвердить что ты не робот

Как мне пройти коллекцию в классическом ASP?

Я хочу иметь возможность делать:

For Each thing In things
End For

CLASSIC ASP - НЕ .NET!

4b9b3361

Ответ 1

Независимо от ваших [вещей] необходимо писать за пределами VBScript.

В VB6 вы можете написать класс Custom Collection, тогда вам нужно будет скомпилировать его в DLL ActiveX и зарегистрировать его на своем веб-сервер для доступа к нему.

Ответ 2

Что-то вроде этого?

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

Ответ 3

Ближе всего вы собираетесь использовать словарь (как упоминается 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

Ответ 4

Один из подходов, который я использовал ранее, - использовать свойство коллекции, которое возвращает массив, который может быть повторен.

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

Итерации:

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

Ответ 5

Как сказал Бретт, лучше использовать компонент vb для создания коллекций. Объекты словаря не очень часто используются в ASP, если только для конкретных приложений, основанных на потребности.

Ответ 6

Будьте ОЧЕНЬ осторожны при использовании VB Script Словарь-объект!
Просто откройте эту " автообработку", родную на этом объекте: http://en.wikipedia.org/wiki/Autovivification

Итак, когда вам нужно сравнивать значения, НИКОГДА не используйте сравнение boolen, например:
If objDic.Item("varName") <> "" Then...
Это будет автоматически добавить ключ "varName" в словарь (если он не существует, с пустым значением), чтобы продолжить оценку булевого выражения.

При необходимости используйте вместо этого If objDic.Exists("varName").

Просто потратьте несколько дней на стук стен, с помощью этой функции "Mcrosoft"...
vbscript-dictionary-object-creating-a-key-which-never-existed-but-present-in-another-object