![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли функция для удаления 1 элемента из динамического масива? [D6, Win2k]
bloodman © (2004-09-01 19:54:00)Есть ли функция для удаления 1 элемента из динамического масиваб и последующим изменением его длины??
А то не хочется писать свою, наверняка же есть...
Семен Сорокин (2004-09-02 09:47:00) [21]
> Romkin © (01.09.04 20:51) [2]
> TList на самом деле только растет :))
> http://www.delphimaster.ru/articles/dyntable/index.html
> Легко адаптировать под массив ;)
Отличная статья.
bloodman (2004-09-01 22:22:00) [22]Fay © (01.09.04 21:04) [3]
Да собственно я решил без функции обойтись:
For Z:=I to Length(DB) - 2 do DB[Z]:= DB[Z+1];
SetLength(DB, Length(DB) - 1);
:)
Palladin (2004-09-01 22:12:00) [23]
> Endi (01.09.04 22:07)
Почитай справку про Move, очень оптимизируешь свою функцию...
Endi (2004-09-01 22:07:00) [24]Я пользуюсь вот этой функцией.
procedure Delete(Idx:integer;M:array of integer); //Idx - индекс, с который нужно удалить
var
i:integer;
begin
for i:=Idx to Length(M)-2 do begin
M[i]:=M[i+1];
end;
SetLength(M,Length(M)-1);
end;
Fay (2004-09-01 21:04:00) [25]2 bloodman © (01.09.04 19:54)
Твой вопрос длиннее той функции, которую не хочется писать.
Romkin (2004-09-01 20:51:00) [26]TList на самом деле только растет :))
http://www.delphimaster.ru/articles/dyntable/index.html
Легко адаптировать под массив ;)
Семен Сорокин (2004-09-01 20:06:00) [27]есть для последнего SetLength(arr, Length(arr)-1), а еще есть Move.
PS.
Используй TList или его наследников.