Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
6-26219
ATLANTIDO
2002-02-24 16:17
2002.05.09
Удаленное администрирование


3-26034
Sasha L
2002-04-16 16:36
2002.05.09
Совместная работа приложений


1-26079
Bocvfy
2002-04-26 12:56
2002.05.09
ICQSMS.DLL


3-26033
BillyJeans
2002-04-16 16:55
2002.05.09
как обойтись без <b>BDE</b>?


1-26067
DenNNis
2002-04-26 08:38
2002.05.09
Уважаемые Мастера!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский