VB - Добавить в массив? - PullRequest
7 голосов
/ 29 марта 2011

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

Итак, массив выглядит следующим образом:

ArrValues(0) "Firstname=FIRSTNAME"
ArrValues(1) "Lastname=LASTNAME"
ArrValues(2) "Username=USERNAME"
ArrValues(3) "Displayname=DISPLAYNAME"

Затем я отправляю этот массив через этот фрагмент кода:

For Each s In arrValues
    s = Split(s, "=")
    s = s(1)
Next

Это лишает строки, поэтому я получаю только FIRSTNAME и так далее. Но я хочу снова отправить каждую очищенную строку в массив. Как мне это сделать?

Ответы [ 2 ]

7 голосов
/ 29 марта 2011

Чтобы записать обратно в массив, вам нужно использовать нотацию ArrValues(index) = new_value.Таким образом, вам нужно использовать обычный цикл For вместо For Each и обращаться к элементам массива по их индексам.Вот как вы можете сделать это:

For i = LBound(ArrValues) To UBound(ArrValues)
 s = ArrValues(i)
 s = Split(s, "=")
 ArrValues(i) = s(1)
Next
3 голосов
/ 29 марта 2011

Пока у вас есть все строки со знаком '=', этот код должен работать ... используя функцию MID.Я не эксперт по производительности, но я считаю, что MID-функция будет иметь лучшую производительность, чем SPLIT (поскольку split будет перенаправлять каждое значение).

Тем не менее, код Хелен может также работать.Просто делюсь этим кодом, чтобы показать мой подход к MID: :)

Sub MidArray()

    Dim ArrValues(3) As Variant
    Dim vValue As Variant
    Dim iCount As Integer

    ArrValues(0) = "Firstname=FIRSTNAME"
    ArrValues(1) = "Lastname=LASTNAME"
    ArrValues(2) = "Username=USERNAME"
    ArrValues(3) = "Displayname=DISPLAYNAME"

    For iCount = LBound(ArrValues) To UBound(ArrValues)

        ArrValues(iCount) = Mid(ArrValues(iCount), InStr(ArrValues(iCount), "=") + 1)

    Next iCount

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...