удаление из масива

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

удаление из масива

Сообщение iolaus » 29.07.2005 (Пт) 13:24

у меня массив данных, как мне можно удалить из него оди элемент и сменить индекс у всех последующих???

я переносом данных пользовался из более верхнего на один ниже, но когда массив большой больно медленно. нельзя ли как нить побыстрее???
This message will self destruct in five seconds!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.07.2005 (Пт) 13:27

Если массив не строковый и не объектный, то можно использовать CopyMemory.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.07.2005 (Пт) 15:29

Изображение

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 30.07.2005 (Сб) 21:38

пассибо. Мне как раз со строками надо было!!!
This message will self destruct in five seconds!!!

Inferno
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 26.01.2005 (Ср) 1:06

Сообщение Inferno » 31.07.2005 (Вс) 11:25

Могу предложить следующее.
1) Создается 2 массива
- первый содержит смещение строки от начала массива
- второй содержит длину строки
можно использовать коллекции, но лучше написать свой класс, будет быстрее.
2) Для удаления строкового элемента загоняем массив в файл и устанавливаем символ перевода каретки как конец элемента, то есть каждая новая строка это новый элемент массива. Перезаписываем данные в файле таким образом чтобы следующий элемент массива лег на удаляемый и усекаем файл. Пересчитываем начало каждого элемента.

При таком подходе не нужно держать весь массив в памяти- любой элемент можно получить зная его начало и длину.
Аналогично можно реализовать и вставку.

Возможно не самое красивое решение, но вполне имеет право на жизнь.


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 111

    TopList