Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 710

Поиск узла дерева с заданным именем

26.06.2016, 20:29. Показов 4227. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно проверить наличие узла с заданным именем в узле по заданному пути имён. Имена узлов могут повторяться. Например, в узле "ААА/БББ" (которого может не быть) найти дочерний узел "ВВВ".

Я так понимаю сделать поиск в выбранном узле можно так, не знаю только как будет возвращён результат, будут искаться все узлы или первый попавшийся
C#
1
2
TreeNode Sel = treeView1.SelectedNode;
TreeNode[] Res = Sel.Nodes.Find(textBox1.Text, false);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.06.2016, 20:29
Ответы с готовыми решениями:

Поиск файлов с заданным именем
- Ввести с клавиатуры произвольное имя текстового файла. - Найти на жестком диске компьютера все файлы с заданным именем (одноименные...

Поиск абонента с заданным именем
В текстовом файле находятся записи о номерах телефонов. В каждой строке записана информация об одном абоненте: № телефона, ФИО, адрес....

Программа, которая осуществляет поиск абонента с заданным именем
В текстовом файле находятся записи о номерах телефонов. В каждой строке записана информация об одном абоненте: № телефона, ФИО, адрес....

23
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 710
28.06.2016, 01:17  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от slashvlz Посмотреть сообщение
C#
1
Res[0].Nodes.Add(textBox2.Text, textBox2.Text).Nodes.Add(textBox3.Text, textBox3.Text);
Тут мне нужно опять сначала сделать поиск подузла с именем textBox2.Text , короче получается такая матрёшка из 3х шт, у меня проблема с тем, что я не знаю как определить нужный номер узла для дерева
Миниатюры
Поиск узла дерева с заданным именем  
0
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
28.06.2016, 01:34
ну что-то вроде такого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  TreeNode[] Res; TreeNode TN = new TreeNode();
 
            Res = treeView1.Nodes.Find(textBox1.Text, true);
            if (Res.Count() == 0) treeView1
                .Nodes.Add(textBox1.Text, textBox1.Text)
                .Nodes.Add(textBox2.Text, textBox2.Text)
                .Nodes.Add(textBox3.Text, textBox3.Text);
            else
            {
                var res2 = Res[0].Nodes.Find(textBox2.Text,true);
                if (res2.Count() == 0)
                {
                    Res[0].Nodes.Add(textBox2.Text, textBox2.Text)
                .Nodes.Add(textBox3.Text, textBox3.Text);
                }
                else
                {
                    res2[0].Nodes.Add(textBox3.Text, textBox3.Text);
                }
                
            }
0
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 710
28.06.2016, 01:45  [ТС]
Вот что получается, для исправления чего нужно проводить поиск на каждой итерации, текстбокс1 всегда верхний уровень, текстбокс2 - средний, а текстбокс3 - нижний, всего 3 уровня. Я пытаюсь узнать как делать поиск в найденном на предыдущей итерации, для чего я спрашивал про структуру TreeNode[], как оно хранится и как в нём искать?
Миниатюры
Поиск узла дерева с заданным именем  
0
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 710
28.06.2016, 10:51  [ТС]
Разобрался...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
private void button3_Click(object sender, EventArgs e) { //Add
    int i = 0; TreeNode TN = new TreeNode();
 
    while (treeView1.Nodes.Count != i) {
        if (treeView1.Nodes[i].Name == textBox1.Text) break;
        i++;
    } 
    if (treeView1.Nodes.Count == i) button4_Click(sender, e); 
 
    else {
        TN = treeView1.Nodes[i]; i = 0;
        while (TN.Nodes.Count != i) {
            if (TN.Nodes[i].Name == textBox2.Text) break;
            i++;
        } 
        if (TN.Nodes.Count == i) TN
            .Nodes.Add(textBox2.Text, textBox2.Text)
            .Nodes.Add(textBox3.Text, textBox3.Text);
 
        else {
            TN = TN.Nodes[i]; i = 0;
            while (TN.Nodes.Count != i) {
                if (TN.Nodes[i].Name == textBox3.Text) break;
                i++;
            }
            if (TN.Nodes.Count == i) TN
                .Nodes.Add(textBox3.Text, textBox3.Text);
        }
    }
}

Не по теме:

Цитата Сообщение от slashvlz Посмотреть сообщение
ну хотя бы не батон, а баттон
это древний жаргон, ему лет 25, если не больше

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.06.2016, 10:51

Поиск и удаление папки, в которой находится подпапка с заданным именем
Помогите написать bat*ник. Собственно что хочется: Чтобы он искал и удалял папку, в которой находится подпапка с заданным именем ...

При выборе узла дерева не снимать выделение с дерева, а переводить курсор в datagridview
на форме treeview(слева)datagridview(справа).мне надо чтобы при выборе узла дерева выделение с дерева не снималось а курсор переходил бы в...

Удалить процессы с заданным именем и с заданным аргументом
Задачка: Запрограммируйте скрипт, удаляющий все процессы с заданным именем и с заданным аргументом, запущенные определенным...

Удаление узла дерева
Добрый вечер. У меня маленькая проблема - написал шаблон для работы с бинарным деревом поиска. Вроде асе робит, но возникла проблема с...

Удаление узла дерева
Разбираюсь с удалением в дереве, начал с удаления листа и сразу же столкнулся с проблемой :wall: Итак, я ищу в дереве элемент, который я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru