|
|
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
Товарищи, подружите меня с массивами, пожалуйста! Что не так делаю? Dim arr(2) As Variant arr = Split(Me.OpenArgs, ";") ' Me.OpenArgs = "14;0" Ругается: Compile error. Can't assign to array. Или это только через циклы делается??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 18:06 |
|
||
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
Использование массивов (хелп а97) Имеется возможность описать массив для работы с набором значений одного типа данных. Массив представляет собой одну переменную с множеством ячеек памяти для хранения значений, тогда как обычная переменная имеет только одну ячейку, в которой может храниться только одно значение. При необходимости сослаться на все элементы массива можно ссылаться на массив как целое. Возможны также ссылки на его отдельные элементы. Например, для записи денежных затрат на каждый день календарного года можно описать один массив с 365 элементами, вместо того, чтобы описывать 365 переменных. Каждый элемент массива содержит одно значение. Следующая инструкция описывает массив curExpense с 365 элементами. По умолчанию индексация массива начинается с нуля, так что верхняя граница массива - 364, а не 365. Код: plaintext Чтобы задать значение отдельного элемента, надо указать его индекс. В следующем примере всем элементам массива присваивается исходное значение 20. Код: plaintext 1. 2. 3. 4. 5. 6. Для того, чтобы изменить индекс первого элемента массива, по умолчанию равный 0, на 1, можно использовать инструкцию Option Base в начале модуля. В следующем примере инструкция Option Base изменяет индекс первого элемента , а инструкция Dim описывает массив curExpense с 365 элементами. Код: plaintext 1. Допускается также явное задание нижней границы индексов массива с помощью предложения To, как продемонстрировано в следующем примере. Код: plaintext 1. Запоминание значений Variant в массивах Создать массив значений Variant можно двумя способами. Первый способ - это описание массива с типом данных Variant, как показано в следующем примере: Код: plaintext 1. 2. 3. 4. Другой способ - это присвоение массива, возвращаемого функцией Array, переменной Variant, как продемонстрировано в следующем примере. Код: plaintext 1. 2. Независимо от способа создания массива значений Variant его элементы нумеруются индексами. Например, следующая инструкция может быть добавлена к любому из предыдущих примеров. Код: plaintext ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 18:15 |
|
||
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
to Geo: Спасибо, читать-то я умею :) Только вопрос был в том, как в переменную типа "массив" записать массив значений, который вернула ф-я Split(). Я сделал через For Each... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 18:25 |
|
||
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
Все дело в строке Dim arr(2) As Variant Код: plaintext 1. 2. В данном случае массив присваивается переменной arr. Можешь ее объвить не как Variant, а как String. Так экономичнее. Всеравно Split() возвращает строковой массив. Так если запустишь такой код Код: plaintext 1. 2. 3. 4. то на выходе получишь Код: plaintext 1. 2. т.е. vbString 8 String vbArray 8192 Array См. хелп по VarType() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 18:32 |
|
||
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
Массив должен быть динамическим и типа String. Код: plaintext 1. 2. Но это Вас не спасет, если в функцию Split() передать пустую строку. Получите ошибку. Лучше использовать переменную Variant Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 18:38 |
|
||
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
Спасибо, Друзья, с вашей помощью я разобрался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 18:43 |
|
||
|
работа с массивами + Split()
|
|||
|---|---|---|---|
|
#18+
ой :),конечно же Dim i As Integer Dim arr(1), v As Variant i = 0 For Each v In Split(Me.OpenArgs, ";") arr(i) = v i = i + 1 Next ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 18:17 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1697&tid=1677308]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 282ms |

| 0 / 0 |
