Добавление, удаление элемементов одномерного и двухмерного динамического массива Delphi

На главную

Назад


//Тип dinarr, dinarr2 - одномерный и двухмерный динамический массив строк, без них создание процедур delElem, delElem2, addElem, addElem2 невозможно
//Примечание: обрабатываемый массив также должен иметь тип dinarr или dinarr2
Type
dinarr=array of string;
dinarr2=array of array of string;

//Процедура удаления в одномерном массиве с проверкой индексов
procedure delElem( var a:dinarr; index:integer);
var last,n:integer;
begin
   last:=length(a);
   if (index<0) or (index>(last-1)) then ShowMessage('Удаление элемента с индексом '+inttostr(index)+' (индексы от 0 до '+inttostr(last-1)+') невозможно')
   else
   begin
    For n:=index to (last-1) do
    begin
      a[n]:=a[n+1];
    end;
    setlength(a,(last-1));
   end;
end;

//Процедура добавления в одномерном массиве с проверкой индексов
procedure addElem( var a:dinarr; index: integer;  anew:string);
var len,n:integer;
begin
   len:=length(a);
   if (index<0) or (index>len) then ShowMessage('Добавление элемента с индексом '+inttostr(index)+' (индексы от 0 до '+inttostr(len)+') невозможно')
   else
   begin
    if index(last-1)) then ShowMessage('Удаление элемента с индексом '+inttostr(index)+' (индексы от 0 до '+inttostr(last-1)+') невозможно')
   else
   begin
    For n:=index to (last-1) do
    begin
      a[mainindex,n]:=a[mainindex,n+1];
    end;
    setlength(a[mainindex],(last-1));
   end;
end;

//Процедура добавления в 2x мерном массиве с проверкой индексов
//Добавляется индекс (index)
procedure addElem2( var a:dinarr2; mainindex, index: integer;  anew:string);
var len,n:integer;
begin
   len:=length(a[mainindex]);
   if (index<0) or (index>len) then ShowMessage('Добавление элемента с индексом '+inttostr(index)+' (индексы от 0 до '+inttostr(len)+') невозможно')
   else
   begin
    if index

Hosted by uCoz