![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| KAPJICOH |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 18.4.2006 Репутация: нет Всего: нет |
Необходимо организовать поиск по реестру. Интересует сам алгоритм, а если быть точнее то поиск с какой либо позиции. Прошу такие ответы как рекурсией не оставлять, оно и так понятно. Заранее спасиба.
|
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Смотри любые алгоритмы поиска по дереву.А вместо начальных условий в этот поиск вместо корня дерева ставишь какую-либо позицию.
|
|||
|
||||
| KAPJICOH |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 18.4.2006 Репутация: нет Всего: нет |
Я неправильно задал вопрос. Имеется элемент TreeView, в котором отображается структура реестра (элементы отсортированы по имени). Курсор находится на какой-либо подветке. Необходимо найти заданную строку начиная с этой позиции ниже по дереву, а также вверх по дереву начиная со следующего после родительского элемента. Надеюсь что понятно изложил вопрос.
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
Изложил понятно. Непонятна проблема...
Пишеш одну рекурсивную функцию, принимающую узел. Она проходит по всем под-узлам этого узла. Как писать, как я понял, понятно. Пишеш два цикла, вызывающих эту функцию: -- первый берет все NextSibling (или как там они зовутся) пока есть -- это поиск вниз -- второй берет все PrevtSibling (или как там они зовутся) пока есть -- это поиск вверх все... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| KAPJICOH |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 18.4.2006 Репутация: нет Всего: нет |
_hunter, также необходимо пройти все подветки родителя данной подветки. Что-то типа
hItem хранит указатель на родительскую ветку и теперь необходимо пройти ее подветки не учитывая те которые стояли до позиции курсора. В принципе алгоритм я вроде бы придумал, НО возникла проблема. Функция RegEnumKeyEx возвращает имя подключа, но в неупорядоченном (по имени) порядке,пользователю будет неудобно прыгать. Я думаю надо построить массив из имен, отсортировать, а затем вызывать поочереди. Правильно ли я думаю и есть какие другие способы? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |