Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.09;
Скачать: CL | DM;

Вниз

TreeView : Copy TreeNodes   Найти похожие ветки 

 
Сатир   (2002-04-23 14:53) [0]

Народ! Помогите советом.
У меня такая ситуация: вытягиваю рекурсивно дерево из ксмл-файла. В дереве есть группы(group) и айтемы(item), корень называется navigator.
Navigator содержит только группы, а группы могут содержать как айтемы, так и вложенные группы с айтемами. Если группа содержит вложенные группы, то эту группу нужно скопировать в отдельное дерево, причем нужно скопировать только дочерние группы без их предка. Как это сделать на этапе формирования первичного дерева?


 
Song   (2002-04-23 15:09) [1]

Node - текущая ветвь
IF Node.HasChildren and Node.GetFirstChild.HasChildren then ShowMessage("Данная ветвь "+Node.Text+" имеет вложенную группу.");


 
Сатир   (2002-04-23 15:43) [2]

>>Song, это условие уже есть. Но дело в том, что мне нужно не информировать пользователя или себя, а активизировать создание паралельного дерева. То есть, когда попадается вложенная группа, добавлять в другое дерево. Звучит в принципе просто, но вот, что-то не выходит...


 
Song   (2002-04-23 16:12) [3]

Т.е. другим словами, Вы не знаете как скопировать весь с подитемами Node.GetFirstChild в другое дерево?


 
Сатир   (2002-04-23 18:18) [4]

>> Song - не знаю. Но дело в том что нужно не просто скопировать а создавать в параллельном режиме и с той же архитектурой. То есть, растет себе какое-то деревцо. В нем сначала выростают только ветки group, а дальше эти ветки могут сразу дать листья item, на которых закончится ветка, или породить группы других веток, и вот, как только определяется начало процесса рождения новых веток (от ветки, а не от корня), вот тогда и включить процесс клонирования этой ветки. Если б я имел уже готовое дерево, тогда гораздо проще. Но дело в том что я же не знаю какая ветвь захочет пустить листочки, а какая даст другие ветки...


 
Cobalt   (2002-04-23 19:08) [5]

То есть, проще говоря, у вас дерево может иметь только "одноуровневые ветви"?


 
Song   (2002-04-23 21:11) [6]

Я всё равно не понял Вашу задачу :(
Нарисуйте её хоть здесь вот так

....
Первая ветка
Подветка1
....

И напишите с какой подветки куда копировать.




 
Сатир   (2002-04-23 22:01) [7]

>>Song
navigator
|_group
| |_item
| |_item
|_group
| |_item
| |_group
| | |_item
| | |_item
| |_item
|_group
|_group
| |_item
| |_item
|_group
|_item
У навигатора есть три ветки. Две из них имеют вложения, поэтому мне нужно скопировать вторую ветку(без родителя) в одно дерево, а третью в другое дерево(поскольку они имеют вложения)
То есть из этого дерева я должен получить два дерева следующего вида:
Первое:

_item
|_group
| |_item
| |_item
|_ item

и второе:

_group
| |_item
| |_item
|_group
|_item
Подскажите, пожалуйста, как это сделать?


 
Song   (2002-04-24 09:06) [8]

Рассмотрим вот эту часть:
|_group
|_group
| |_item
| |_item
|_group
|_item
у верхнего group есть подитем group у которого тоже есть подветвь (item). Почему эта ветвь не относится к той классификации, ветви которой уходят в другое дерево?


 
Сатир   (2002-04-24 13:15) [9]

Ладно, всем спасибо. Уже разобрался сам:-)



Страницы: 1 вся ветка

Текущий архив: 2002.05.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
3-25984
AlanB
2002-04-15 13:58
2002.05.09
Проблема с запросом Update Nash_Doc set data IS NULL where data =


4-26300
Gayrus
2002-03-06 16:18
2002.05.09
Hook


7-26280
sammy
2002-02-12 08:19
2002.05.09
свойства файлов


3-26016
bos
2002-04-11 17:23
2002.05.09
Как подставить значение поля в sql-запрос


3-26003
Jakov
2002-04-05 13:59
2002.05.09
.dbx - ?