Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Построение дерева данных


Автор: Ivanich 22.7.2009, 22:27
Здраствуйте!!!
Вопрос заключается в копирование дерева рееста ОС и построения этого дерева в приложение, я так полагаю сделать это можно через рекурсию, но чет пока не заладилось. Вот и решил попросить вашей помощи.
Вот рекурсивная функция построения дерева данных, которую я написал на C++ Borland, но она не совсем верно работает:

Код

void __fastcall TViewRegister::GetKey( AnsiString keyPath)
{


    if (regKey->OpenKey(keyPath, false)) { //заходим в нужный раздел реестра



    TStringList *listKey = new TStringList();
    regKey->GetKeyNames(listKey);   //получаем список ключей нужного раздела (в который зашли)
    if (listKey->Count != 0) { //если в ветке больше нет ключей, завершаем построение этой ветки в глубину

        for (int i = 0; i < listKey->Count; i++) {   //перечисляем в открытом ключе все подключи
            TreeData->Items->AddChild(TreeData->Items->Item[arrCountLevel[i]++], listKey->Strings[i]); //заносим текущий подключ в дерево

            WayPathKey = WayPathKey + "\\" + listKey->Strings[i]; //создаем путь до следующего подключа (в глубину)
            regKey->CloseKey();


            GetKey(WayPathKey);      //вызываем рекурсивную функцию
        }

    }

    delete listKey;




    }
}


был бы благодарен за алгоритм, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)