Добавление, удаление элемементов одномерного и двухмерного динамического массива 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