PDA

Просмотр полной версии : организация массива


SeregaZ
03.06.2013, 12:02
очень не люблю массивы - столько мороки... однако приспичило. хорошо бы была бы тема с подробным описанием создания массива и работы с ним.

пока несколько вопросов:

как пользоваться кнопкой WatchList? я так понял это своего рода дебаг, где можно посмотреть значения своих переменных, однако что-то у меня не показывает... выводить сообщения в клиент опасаюсь - мало ли что они там в защите забабахали. в моем пьюр бейсике есть команда debug и она в отдельном окошке выводит какие нужно значения. есть такое в л2пх? (под рукой старая версия 166 - может быть в новых уже все реализовано?)

SetLength(massiv, 0) - вроде как обнуляет массив. тогда предположим был массив на 5 предметов, один я использовал, надо бы удалить из массива. в этом случае последующий SetLength(massiv, 4) - уменьшит длинну массива на одну позицию, или по сути перепишет нулями весь массив, но на этот раз сделав всего 4 позиций?

я так понял команды GetLength(massiv) не существует? можно ли чем-то заменить? то есть узнать длинну массива.

нет ли какой простой команды на смещение внутри массива и уменьшение длинны массива, в случае если я взял элемент где-либо в середине массива? типа был SetLength(massiv, 5) я взял элемент под номером 3. как перенести 4 в 3, потом 5 в 4 и удалить 5?
сейчас я полагаю придется делать цикл фор и прогонять весь массив на предмет поиска пустого значения... немного не удобно.

alexteam
03.06.2013, 12:24
SetLength(massiv, 4) - уменьшит длинну массива на одну позицию, или по сути перепишет нулями весь массив, но на этот раз сделав всего 4 позиций?

аллоцирует новый, забьет нулями и скопирует туда старые данные (все что влезут)

GetLength
length()

нет ли какой простой команды на смещение внутри массива и уменьшение длинны массива, в случае если я взял элемент где-либо в середине массива? типа был SetLength(massiv, 5) я взял элемент под номером 3. как перенести 4 в 3, потом 5 в 4 и удалить 5?
move()
setlength()
хотя, последний если посмотреть реализацию tlist восе не обязателен.