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