![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
массивы [D7, XP]
Max © (2011-05-31 12:46:00)Добрый день!
Помогите разобраться. Задание подразумевает вывод данных способом "матрешки". Разбиваю по уровням вложений- в первом массиве -кол-во записей 1 уровня. Для каждого элемента будет (в зависимости от запроса) свой массив (2 уровень) и т.д.
Как мне в цикле обращаться к mas1, mas2,mas3,masN и т.д?
Можно ли создавать массив каждый раз или все-таки объявить (как надо) динамические массивы изначально в переменных?
clickmaker (2011-05-31 13:20:00) [1]Variant, VarArrayCreate()
Юрий Зотов (2011-05-31 13:18:00) [2]
> Max (31.05.11 13:08) [3]
См. в справке "Многомерные динамические массивы".
Но как Вы будете объявлять такой массив, если уровень вложенности заранее неизвестен?
Ega23 (2011-05-31 13:15:00) [3]
var
arr: array of array of array of Integer;
begin
....
arr[1][2][3] := ...
end;
Max (2011-05-31 13:08:00) [4]я согласен - рекурсия (т.е можно оформить все через процедуру,в которой сама будет эта процедура ).
Вопрос открытый: как обращаться в цикле к новым массивам? я хочу через переменные,но не знаю как....
for imas1:=1 to Kolmas1 do
begin
mas1[imas1] :=
for imas2:=1 to Kolmas2 do
begin
mas2[imas2] :=
end
и т.д
end
Юрий Зотов (2011-05-31 13:06:00) [5]Рекурсивно построить дерево (TTreeView), каждый узел которого содержит динамический массив (см. свойство TTreeNode.Data). Дерево размещается на форме слева, а справа от него, через сплиттер - что-то вроде TListBox. При выборе любого узла дерева массив этого узла отображается в ListBox'е.
Ega23 (2011-05-31 12:48:00) [6]Если число вложений заранее известно, то вложенные циклы.
Если неизвестно - рекурсия.