Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

17 Июль 2018, 20:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: как удалить элемент из массива  (Прочитано 4456 раз)
0 Пользователей и 1 Гость смотрят эту тему.
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Online Online

Пол: Мужской
Расположение: Киев
Сообщений: 2 496


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #23355: 17 Декабрь 2013, 13:52 »

Существует несколько алгоритмов для решения этой задачи.
1. "Затратный" - перезапись нужных (оставшихся) значений в новый массив меньшего размера с последующим переприсвоением старому массиву нового значения (указателя на новый массив). Такой способ использован, например, в процедуре RemoveListboxItemByName (модуль Listbox стандартной библиотеки макросов Tools)
2. "Долгий" - перезапись в цикле оставшихся элементов массива ("хвоста") на новое место и после этого переопределение размера массива (ReDim Preserve)
3. "Продвинутый" ("Заумный") - сразу отказаться от использования массива и создавать списки или деревья значений. Алгоритмы исключения элементов для этих случаев хорошо расписаны, например, у Н.Вирта в "Алгоритмы + структуры данных = программы"
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!