от
В ниже код
For i = LBound(arr) To UBound(arr)
Какой смысл спрашивать через
LBound
? Конечно, это всегда 0.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

7 Ответы

0 голосов
от
В ниже код
For i = LBound(arr) To UBound(arr)
Какой смысл спрашивать через
LBound
? Конечно, это всегда 0.
0 голосов
от
Почему бы не использовать
For Each
? Таким образом, вы не должны заботиться, что
LBound
и
UBound
являются.
Dim x, y, z
x = Array(1, 2, 3)

For Each y In x
    z = DoSomethingWith(y)
Next
0 голосов
от
Есть хорошая причина, чтобы не использовать
For i = LBound(arr) To UBound(arr)
dim arr(10)
выделяет одиннадцать членов массива, от 0 до 10 (при условии, что базовый вариант в VB6 по умолчанию). Многие в VB6 программистов предположить массив один, и никогда не использовать выделенные
arr(0)
. Мы можем устранить потенциальный источник ошибки с помощью
For i = 1 To UBound(arr)
или
For i = 0 To UBound(arr)
, потому что тогда понятно, будет ли
arr(0)
используется.
For each
копирует каждый элемент массива, а не указатель. Здесь есть две проблемы. Когда мы пытаемся присвоить значение элементу массива, это не отражается на оригинале. Этот код присваивает значение 47 переменной
i
, но не влияет на элементы
arr
. Арр = массив(3,4,8) для каждого я в arr я = 47 затем я Ответ.Писать Арр(0) '- возвращает 3, а не 47 Мы не знаем индекса элемента массива в
for each
, и мы не гарантированы последовательность элементов (хотя вроде бы в порядке.)
0 голосов
от
LBound
может не всегда быть 0. Пока это не возможно, чтобы создать массив, который не имеет ничего, кроме 0 нижняя граница в VBScript, это еще можно получить множество вариантов из COM-компонент, который может быть указан другой
LBound
. Что сказал, Я никогда не сталкивался с такими, что сделал что-то подобное.
0 голосов
от
Вероятно, оно происходит от в VB6. Потому что с базы оператора на VB6, вы можете изменить нижнюю границу массива такой:
Option Base 1
Также на VB6, вы можете изменить нижней границе определенного массива такой:
Dim myArray(4 To 42) As String
0 голосов
от
Я всегда использовал для каждого...
0 голосов
от
Это мой подход:
dim arrFormaA(15)
arrFormaA( 0 ) = "formaA_01.txt"
arrFormaA( 1 ) = "formaA_02.txt"
arrFormaA( 2 ) = "formaA_03.txt"
arrFormaA( 3 ) = "formaA_04.txt"
arrFormaA( 4 ) = "formaA_05.txt"
arrFormaA( 5 ) = "formaA_06.txt"
arrFormaA( 6 ) = "formaA_07.txt"
arrFormaA( 7 ) = "formaA_08.txt"
arrFormaA( 8 ) = "formaA_09.txt"
arrFormaA( 9 ) = "formaA_10.txt"
arrFormaA( 10 ) = "formaA_11.txt"
arrFormaA( 11 ) = "formaA_12.txt"
arrFormaA( 12 ) = "formaA_13.txt"
arrFormaA( 13 ) = "formaA_14.txt"
arrFormaA( 14 ) = "formaA_15.txt"

Wscript.echo(UBound(arrFormaA))
''displays "15"

For i = 0 To UBound(arrFormaA)

Надеюсь, что это помогает.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...