Страница: 1 |
Страница: 1 |
Вопрос: Удаляем элемент массива!
Добавлено: 20.04.06 18:32
Автор вопроса: DJ MATHEMATIC
Как удалить элемент из одномерного массива,причем,например если мы удалили 2 элемент,то 3 сдвигается на его место,4 на место 3 и т.д.
Удаляемый элемент выбираемя в инпутбоксе!
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 20.04.06 19:23
по поводу вопроса то вот:
Private Sub Form_Load()
Show
Dim a(1 To 10)
Dim i As Long
'fill the array with some shit
For i = 1 To 10
a(i) = i
'1,2,3..10
Next
'print
For i = 1 To 10
Print a(i)
Next
'delete #3
For i = 3 To 9
a(i) = a(i + 1)
Next
'print
Print "---"
For i = 1 To 9
Print a(i)
Next
End Sub
а про инпутбокс, это уже капец нафиг, не интересно
Номер ответа: 2
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #2
Добавлено: 20.04.06 23:37
Примерно так:
Sub DeleteArrayElementL(ByRef Array() As Long, ByVal ID&
Dim I&
For I = ID To UBound(Array) - 1
Array(I) = Array(I + 1)
Next I
ReDim Preserve Array(UBound(Array) - 1)
End Sub
Номер ответа: 3
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #3
Добавлено: 21.04.06 00:56
Если это массив, содержащий не-String данные (короче что-нить статическое), то ГОРАЗДО быстрее код приведённый Страшным Сном делать с помощью:
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 21.04.06 00:57
Пардон, забыл переключить ApiViewer. Для VB6:
Номер ответа: 5
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #5
Добавлено: 21.04.06 05:44
Это да. С перекрывающимися участками памяти CopyMemory вроде справляется.
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 21.04.06 11:25
Я могу и ошибаться, но стринговый SAFEARRAY, насколько я знаю, содержит массив BSTR*, так что CopyMemory вполне прокатит. Только самому придется делать SysFreeString. Повторяюсь, могу ошибиться, ибо пробовать лень