Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Вниз

динамический массив   Найти похожие ветки 

 
Neox   (2003-04-14 16:03) [0]

существуют ли какие-то особые методы или функции для удаления не крайних элементов динамического массива (а также и вставки в середину массива)? или придется все же по-тупому делать так?:

var
i, k: integer;
ar1, ar2: array of integer;
begin
SetLength(ar1, 5);
ar1[0]:=1;ar1[1]:=2;ar1[2]:=3;ar1[3]:=4;ar1[4]:=5;
SetLength(ar2, 5);

k:=2; //абсол. индекс удаляемого элемента

for i:=0 to k-1 do
ar2[i] := ar1[i];

for i:=k to High(ar1)-1 do
ar2[i] := ar1[i+1];

SetLength(ar2, 4);
end;


 
MBo   (2003-04-14 16:08) [1]

Move можно использовать


 
LEON   (2003-04-14 23:02) [2]

Delete(Ar, Length(Ar) - количество элементов, количество элементов)


 
Demon_MHM   (2003-04-14 23:12) [3]

Можно еще проще:
ar1[<индекс удал. эл-та>] := ar1[High(Ar1)];
SetLength(Ar1, High(Ar1));

Вроде так, если ничего не напутал...
Короче, берешь последний эл-т, кидаешь его значение на место удаляемого, а потом устанавливаешь длину массива меньше на единицу.


 
Palladin   (2003-04-15 00:02) [4]


> Demon_MHM © (14.04.03 23:12)

ну это если последовательность элементов сохранять не надо...


 
Palladin   (2003-04-15 00:09) [5]


> LEON (14.04.03 23:02)

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

var
r:array of byte;

delete(string(r),2,1);


 
Demon_MHM   (2003-04-15 10:10) [6]

>Palladin © (15.04.03 00:02)
Ну, так все равно рано или поздно они сортируются :) Остается посчитать что выгоднее, заново отсортировать масив, или двигать его в другой, особенно если они большие. А один элемент можно пузырьком быстренько на место двинуть :)


 
evvcom   (2003-04-15 10:17) [7]

Сортировка делается гораздо дольше чем Move


 
Palladin   (2003-04-15 10:37) [8]

Я не имел ввиду сортированый массив, я имел ввиду последовательный массив.


 
Neox   (2003-04-15 15:54) [9]

да, у меня массив не сортируется в последствии, и важно сохранить его последовательность, т.е. надо сдвигать все элементы, а не переставлять последний.


 
Anatoly Podgoretsky   (2003-04-15 16:02) [10]

Move для одномерных массивов (для двухмерынх если удаляется вся строка, учитывая, что это указатели, а не значения).



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
14-91526
Delirium^.Tremens
2003-04-09 11:41
2003.04.28
Задолбавшие вопросы


3-91150
me2
2003-04-08 14:52
2003.04.28
Две трансакции


14-91474
Stager
2003-04-09 13:46
2003.04.28
Встречался ли Вам такой грид?


1-91332
Woland.hexed
2003-04-14 23:18
2003.04.28
Построение отчетов в стиле 1С (Excel)


1-91252
zatochka
2003-04-16 22:25
2003.04.28
Как здаелать программу невидимой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский