Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 27.08.2010, 20:04   #1
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
удалить ячейку в массиве

допустим, есть одномерный массив (mas: array [0..9] of ...)
есть ли какая-нибудь функция для удаления одного элемента массива, чтобы все элементы, находящиеся "выше" удаленного, как бы опустились на единичку, ну вобщем заполнили пустое место
я знаю что можно циклом, но по-моему где давно что-то подобное находил, может кто тоже видел????
(Offline)
 
Ответить с цитированием
Старый 27.08.2010, 22:50   #2
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: удалить ячейку в массиве

проде как нельзя изменять размер масива. используй листы и иже с ними, где можно удалять по одному элементу
(Offline)
 
Ответить с цитированием
Старый 28.08.2010, 01:43   #3
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: удалить ячейку в массиве

смешаешь, удаляешь
/где-то в начале кода...
type arr:array of int;
var mas:arr;
...
begin
mas.SetLength(9)
...
/А тут очищаем
Procedure RemoveElement(dim:arr, pos:int)
var i:byte;
For i:=pos to dim.Length()-1/Точно не помню как получить последний
  dim[pos]=dim[pos+1]
Next/Лол, я забыл как закрывать в паскале цикл For
dim.SetLength(dim.Length()-1)
End Procedure/фак, надо повторить язык
Возможно что работать не будет, не исключен вариант что при SetLength массив очищается, но это не проблема. На время SetLength можно перенести данные в другой массив.
Ты кодер - ты и мучайся)
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 28.08.2010, 11:51   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: удалить ячейку в массиве

Den, да пздц.
тогда лучше уж std::list.

а вообще я бы советовал (если место критично к скорости выполнения) если известен максимальный размер массива, элементы редко вставляются или удаляются, но часто используются. Например это юниты в стратегии - то выделять сразу массив максимального размера, а потом делать как Рекс сказал, но безо всяких этих манипуляций с сетленгхт.
(Offline)
 
Ответить с цитированием
Старый 30.08.2010, 18:21   #5
<-TzX->
Оператор ЭВМ
 
Аватар для <-TzX->
 
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: удалить ячейку в массиве

Сообщение от WhiteBlack Посмотреть сообщение
допустим, есть одномерный массив (mas: array [0..9] of ...)
есть ли какая-нибудь функция для удаления одного элемента массива, чтобы все элементы, находящиеся "выше" удаленного, как бы опустились на единичку, ну вобщем заполнили пустое место
я знаю что можно циклом, но по-моему где давно что-то подобное находил, может кто тоже видел????
А чем вас цикл не устраивает, организовывал именно таким образом. И все прекрасно работало.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:24.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com