S
Only a common approach in private examplesWe have:massiv = array [1..9000] of word;
mkts = array [0..3, 1..6, 1..16] of SmallInt;
mdl = array [0..3, 1..6, 1..15] of SmallInt;
msh = array[1..392] of SmallInt;
TPmkts = ^mkts;
TPmdl = ^mdl;
TPmsh = ^msh;
Pkts: array[1..4, 1..2] of TPmkts = ( (nil, nil),
(nil, nil), (nil, nil), (nil, nil) );
Pdl: array[1..4, 1..2] of TPmdl = ( (nil, nil),
(nil, nil), (nil, nil), (nil, nil) );
Psh: array[1..4, 1..2] of TPmsh = ( (nil, nil),
(nil, nil), (nil, nil), (nil, nil) );
We get:// pkts - двумерный массив, элементами которого являются трехмерные массивы
int[,][,,] pkts = new int[4,2][,,];
// аналогично pdl - двумерный массив, элементами которого являются трехмерные массивы
// пример с инициализацией (поскольку всё и так null - необязательной)
int[,][,,] pdl = new int[4,2][,,] {
{null, null}, {null, null}, {null, null}, {null, null}
};
// psh - двумерный массив, элементами которого являются одномерные массивы
int[,][] psh = new int[4,2][];
// PKTS[1, 1]^[KCO, Tip, CCO] становится
pkts[0, 0][KCO - 1, Tip - 1, CCO - 1]
// PDL[1, 1]^[KCO, Tip, CCO] становится
pdl[0, 0][KCO - 1, Tip - 1, CCO - 1]
// PSH[i, j]^[k] становится
psh[i - 1, j - 1][k - 1]
// Инициализация New(PDL[1, 1]) превращается в
pdl[0, 0] = new int[4, 6, 15];
// размерности нового массива берём из объявления mdl = array [0..3, 1..6, 1..15] of SmallInt;
// Какой-нибудь New(PKTS[i, j]) превращается в
pkts[i - 1, j - 1] = new int[4, 6, 16];
// Как же переделать Pkts[1, 1]:= @Psh[1, 1]^[9];?
// Тут манипуляции с указателем, которые просто так не перенести
pkts[0, 0] = psh[0, 0][8]; // ошибка
// надо что-то придумывать, исходя из конкретной задачи.
// наверняка там в Psh какая-то структура. Типа заголовок в 9 элементов,
// а далее трехмерный массив, годный для pkts
// разумнее psh представить в виде объекта, в котором явно выделяются
// составные части.
// Или нужную часть массива подручными средствами переносить в требуемый
// трехмерный
Indices and sizes are driven by the fact that c# indices start from zero!Careful with Pkts.See comment in code aboveI hope it's not too wrong to say there's a multi-dimensional jagged Massive in c#. I didn't get a direct mention. But when it comes to one-dimensional jagged, it's logical to assume that there are many.