Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как корректно изменить границы массива, выкинув не нужный элемент? / 5 сообщений из 5, страница 1 из 1
11.08.2005, 16:26:44
    #33210975
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как корректно изменить границы массива, выкинув не нужный элемент?
Предположим есть строковый массив str("text1", "text2", "text3", "text4"), индексы которого 0..3.
Можно ли изменить массив, выкинув, например, элемент text3, чтобы массив стал таким: str("text1", "text2", "text4") с индексами 0..2
...
Рейтинг: 0 / 0
11.08.2005, 16:57:51
    #33211123
абармот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как корректно изменить границы массива, выкинув не нужный элемент?
если массив был объявлен как динамический, то можно менять его последнюю размерность. хелп на redim
...
Рейтинг: 0 / 0
11.08.2005, 17:06:56
    #33211168
Как корректно изменить границы массива, выкинув не нужный элемент?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Dim varItems() As Variant
    Dim varTemp As Variant
    
    varItems = Array("text1", "text2", "text3", "text4")
    
    varTemp = varItems( 3 )
    ReDim Preserve varItems( 2 )
    varItems( 2 ) = varTemp
...
Рейтинг: 0 / 0
11.08.2005, 17:36:52
    #33211276
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как корректно изменить границы массива, выкинув не нужный элемент?
Пользователь2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Dim varItems() As Variant
    Dim varTemp As Variant
    
    varItems = Array("text1", "text2", "text3", "text4")
    
    varTemp = varItems( 3 )
    ReDim Preserve varItems( 2 )
    varItems( 2 ) = varTemp

Спасибо, Пользователь2! Это очень элегантное и простое решение. Я даже не думал что это будет так просто. Скока не читал справку про ReDim Preserve, так и не понял фишки.
Командой ReDim Preserve varItems(2) я изменяю размер массива на 1 элемент, отбрасывая последний элемент? Я правильно понял?
...
Рейтинг: 0 / 0
12.08.2005, 08:32:00
    #33211944
Как корректно изменить границы массива, выкинув не нужный элемент?
k-nikeReDim Preserve varItems(2) я изменяю размер массива на 1 элемент, отбрасывая последний элемент? Я правильно понял?
Да, правильно.

При помощи ReDim можно изменить размер динамического массива (если слово Preserve не указать, VB удалит все данные, содержащиеся в массиве, если же указать, VB сохранить все имеющиеся элементы массива).
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как корректно изменить границы массива, выкинув не нужный элемент? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]