Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Обход строк дерева значений  (Прочитано 16604 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dest
Опытный

ru
Offline Offline

« : 03-01-2009 10:39 » 

Имеется иерархический справочник. Я обработкой делаю точную копию иерархии групп в дерево значений. В этом дереве значений одна колонка типа булево. Пользователь  тыкает на флажки, отмечая необходимые ему группы,  и после этого запускает обработку. Теперь мне необходимо узнать – что же пользователь отметил. Для обхода строк дерева значений использую следующий, примерный код. (ДЗ – тип дерево значений)

Код:
Для каждого Строчка из ДЗ.Строки цикл
//Тут что-нибудь делаем, но только с первым уровнем строк
Конеццикла
Второй_уровень= ДЗ.Строки;
Для каждого Строчка из Второй_уровень .строки цикл
//Тут что-нибудь делаем, но только со вторым уровнем строк
Конеццикла

А у меня этих уровней немерено, и я за ранее не знаю сколько их будет. Подскажите, есть ли возможность как-нибудь долее удобней, возможно в одном цикле, обходить все строки на всех уровнях дерева значений, если за ранее не известно сколько будет уровней?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-01-2009 20:19 » 

Самое удобное (наглядное) - делать это рекурсивно:
создаешь функцию, которой передаешь родителя, а она обходит все его дочерние элементы. И для каждого вызывает саму себя, но новым родителем уже передав дочерний элемент
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines