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

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

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

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

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

проде как нельзя изменять размер масива. используй листы и иже с ними, где можно удалять по одному элементу
(Offline)
 
Ответить с цитированием
Старый 27.08.2010, 21: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, 07:51   #4
HolyDel
 
Регистрация: 25.09.2006
Сообщений: 6,030
Написано 1,469 полезных сообщений
(для 2,690 пользователей)
Ответ: удалить ячейку в массиве

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

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

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


Опции темы

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

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


Часовой пояс GMT +1, время: 00:02.


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