Есть запись:
- Код: Выделить всё
TCategory = packed record
id: integer;
parentId: integer;
name: string;
end;
есть массив записей:
- Код: Выделить всё
ArrayOfCategories = array of TCategory;
В массиве хранится список категорий. Массив отсортирован по возрастанию parentId. "Верхние" ветви имеют parentId=0. Общего корня нет. Глубина и количество "дочек" не регламентировано.
То есть что-то вроде:
- Код: Выделить всё
1 | 0 | Бытовая техника
2 | 0 | Детские товары
10 | 1 | Мелкая техника для кухни
20 | 2 | Детский спорт
102 | 10 | Мороженицы
101 | 10 | Сэндвичницы и приборы для выпечки
200 | 20 | Игровые и спортивные комплексы, горки
Стоит задача обойти все дерево и все узлы занести в БД с сохранением иерархии, но id и parentId станут другими.
Понимаю, что надо Брать узел с parentId=0, обегать его дочек, далее дочек тех дочек и т.п. Но с рекурсией у меня совсем беда Прошу помощи в реализации задуманного. С БД проблем нет.