Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как удалить одно значение из динамического массива

Delphi , Синтаксис , Массивы

Как удалить одно значение из динамического массива

Автор: http://www.swissdelphicenter.ch

type
  TArrayString = array of string;

procedure DeleteArrayIndex(var X: TArrayString; Index: Integer);
begin
  if Index > High(X) then
    Exit;
  if Index < Low(X) then
    Exit;
  if Index = High(X) then
  begin
    SetLength(X, Length(X) - 1);
    Exit;
  end;
  Finalize(X[Index]);
  System.Move(X[Index + 1], X[Index],
    (Length(X) - Index - 1) * SizeOf(string) + 1);
  SetLength(X, Length(X) - 1);
end;

// Example : Delete the second item from array a
// Beispiel : Losche das 2. Element vom array a

procedure TForm1.Button2Click(Sender: TObject);
var
  a: TArrayString;
begin
  DeleteArrayIndex(a, 2);
end;

Статья Как удалить одно значение из динамического массива раздела Синтаксис Массивы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


:: 2011-04-08 16:43:10 :: re:Как удалить одно значение из динамического массива

пользователь: kan.

Внимание! Тут ошибка System.Move нужно сделать с текущего индекса на последний.


:: 2011-04-22 21:44:05 :: re:Как удалить одно значение из динамического массива

пользователь: Сергей.

Не вводите в заблуждение!!!
Move - это копирование области памяти, а не перемещение!!
Копировать нужно область с [Index + 1] на [Index].


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Массивы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
19.04.2024 14:56:19/0.00089597702026367/0