Registry



  • hallo, suche schon seit längeren ein lösung für folgendes problem:

    ich öffne ein registry key als objekt und lese (speichere in member cstringarray) alle unterkeys (ebene 1) ein.
    nun möchte ich von allen unterkeys (ebene 1) alle unter - unterkeys haben (ebene 2)

    wie stelle ich dies am besten an wenn ich mit klassen arbeite ???

    danke für euere hilfe im vorraus.



  • Rekursion!?


  • Administrator

    Gibt sicherlich verschiedene Möglichkeiten. Aber wenn du nur bis zur 2. Ebene willst dann gäbe es z.b. diese Möglichkeit:

    // Du erstellst dir eine Klasse
    
    class CEbene : public CObject
    {
        // Konstruktoren und Destruktoren
    public:
        CEbene() : m_strName(_T("")) { m_StringList.RemoveAll(); };
        ~CEbene() : m_strName(_T("")) { m_StringList.RemoveAll(); };
    
        CEbene(const CEbene& e)
        {
            m_strName = e.m_strName;
            m_StringList.RemoveAll();
            POSITION pos = e.m_StringList.GetHeadPosition();
            while(pos != NULL)
            { m_StringList.AddTail(e.m_StringList.GetNext(pos)); }
        }
    
        // Operatoren
    public:
        CEbene& operator =(const CEbene& e)
        {
            m_strName = e.m_strName;
            m_StringList.RemoveAll();
            POSITION pos = e.m_StringList.GetHeadPosition();
            while(pos != NULL)
            { m_StringList.AddTail(e.m_StringList.GetNext(pos)); }
    
            return *this;
        }
    
        // Attribute
    private:
        CString m_strName;
    
    public:
        CStringList m_StringList;
    
        // Member-Funktionen
    public:
        void SetName(CString strName) { m_strName = strName; };
        CString GetName() { return m_strName; };
    }
    

    Und jetzt machst du folgendes dort wo du bisher dein CStringList hattest:

    CList<CEbene,CEbene> m_EbeneList;
    

    Jetzt hast du eine Liste mit CString's, welche jeweils noch eine weitere Liste mit CStrings in sich selbst tragen.
    Ich hoffe es war das was du gesucht hast. Ich habe jetzt Class genommen, man könnte auch struct nehmen, aber eine class lässt sich viel schöner dann mit Funktionen erweitern, was in OOP sehr angenehm ist ^^ ...

    Aja Code ist nicht getestet, ist nur hier eingetippt 😉

    Grüssli



  • hallo

    jochen rekursion wäre schon ganz gut aber damut tue ich mich immer schwer, wenn ich die anzahl der aufrufe vorher noch nicht weiss.

    draverse danke für deine mühe, werde den code nachher gleich mal testen.

    danke für eure hilfe !!!!

    gruss criecky


Log in to reply