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

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

26.06.2016, 20:29. Показов 4335. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru