Если хочется, чтобы в многомерном массиве был разный размер у разных
измерений например: VarArray: array[1..2, 1..?] of TType , где ? зависит от
"строки" массива (1..2)
То дозволяется сделать так:
- Объявление
|
|
Var
VarArray: array of array of array............ |
- Установка длин
|
|
SetLength (VarArray,
Razmernost1); // У первого измерения
SetLength
(VarArray[1], Razmernost2); // У
второго измерения первой "строки" SetLength (VarArray[2], Razmernost3); // У второго измерения
второй "строки" SetLength (VarArray[n], Razmernost4); // У второго измерения n-ной "строки"
SetLength
(VarArray[1][1], Razmernost5);
// У третьего измерения первой "строки" первого
"столбца" SetLength (VarArray[1][2], Razmernost6); // У третьего измерения
первой "строки" второго "столбца" SetLength (VarArray[n][m],
Razmernost7); // У третьего измерения n-ной "строки" m-ного
"столбца" |
т.д. Все можно изменять в процессе естественно.
- Получение длин
|
|
Razmernost1:=Length
(VarArray); // У первого измерения (количество
строк)
Razmernost2:=Length (VarArray[1]);
// У второго измерения первой "строки" (количество
столбцов) Razmernost3:=Length (VarArray[2]);
// У второго измерения второй "строки" (количество
столбцов) Razmernost4:=Length (VarArray[n]); // У
второго измерения n-ной "строки" (количество
столбцов)
Razmernost5:=Length (VarArray[1][1]); // У
третьего измерения первой "строки" первого
"столбца" Razmernost6:=Length (VarArray[1][2]); // У
третьего измерения первой "строки" второго
"столбца" Razmernost7:=Length (VarArray[n][m]); //
У третьего измерения n-ной "строки" m-ного "столбца"
|
- Обращение
VarArray[n][m][o][p][r]:=1; // :Integer // К элементу n-ной "строки",
m-ного "столбца",
// o-того "?",
p-того "?", r-того "?"
- Обнуление (освобождение памяти)
|
|
SetLength (VarArray, 0); // Всех сразу | |