Что быстрее и правильнее?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Что быстрее и правильнее?

Сообщение Ruslan Demidow » 26.07.2004 (Пн) 14:43

В программе объявлен массив пользовательских типов записи.
При определённых событиях этот массив на данный момент ресайзится через ReDim и заполняется новыми данным.
Что быстрее и правильнее: перед заполнением ресайзить заполненный до этого массив до нужного размера и заполнять новыми данными поверх старых или делать ему Erase, а потом уже ресайзить и заполнять?
И после Erase, смогу ли я обратиться к нему (массиву) для изменения размерности через ReDim и заполнения новыми данными?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.07.2004 (Пн) 14:52

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

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 26.07.2004 (Пн) 15:17

Konst_One писал(а):можно ресайзить и сохранять уже внесенные элементы , для этого надо использовать слово Preserve

Это я знаю и использую. Но я вот недавно подумал, что старые данные в массиве после ресайза уже будут не нужны. Поэтому и спрашиваю как быстрее -сначала ресайзить и пихать в массив новые данные поверх старых или будет быстрее сначала грохнуть весь массив через Erase, а потом уже ресайзить (подготавливая место для данных) и заполнять его?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.07.2004 (Вт) 19:14

redim без preserve суть то же, что erase с последующим redim.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 28.07.2004 (Ср) 8:26

Ага, понятно. Спасибо.
Вопрос ещё возник: как быстрее всего удалить все элементы в коллекции кроме как обходом через For Each и удалением через Item(i).Remove ? Условия те же самые - старые данные не понадобятся.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.07.2004 (Ср) 8:35

В коллекцию идут копии указателей, а потому просто set col=nothing.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 28.07.2004 (Ср) 8:48

GSerg писал(а):В коллекцию идут копии указателей, а потому просто set col=nothing.

Ага, понятно. Спасибо за ответы.
Думаю, тему можно считать закрытой.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 28

    TopList  
cron