Autor Tema: Recursion para poblar un treeview  (Leído 1240 veces)

0 Usuarios y 1 Visitante están viendo este tema.

79137913

  • Megabyte
  • ***
  • Mensajes: 185
  • Reputación: +21/-4
  • 4 Esquinas
    • Ver Perfil
    • Eco.Resumen Resumenes Cs. Economicas
Recursion para poblar un treeview
« en: Abril 17, 2014, 02:26:37 pm »
HOLA!!!

Quisiera si alguien me puede ayudar con esto:
(si, necesito codigo, me estoy quemando la cabeza y no me sale)

El tema es el siguiente, tengo un archivo como este:
Código: [Seleccionar]
HKCU\AppEvents\Schemes
HKCU\AppEvents\Schemes\Apps
HKCU\AppEvents\Schemes\Apps\.Default
HKCU\AppEvents\Schemes\Apps\.Default\.Default
HKCU\AppEvents\Schemes\Apps\.Default\.Default\.Current
HKCU\AppEvents\Schemes\Apps\.Default\.Default\.Default
HKCU\AppEvents\Schemes\Apps\.Default\AppGPFault
HKCU\AppEvents\Schemes\Apps\.Default\AppGPFault\.Current
HKCU\AppEvents\Schemes\Apps\.Default\AppGPFault\.Default
HKCU\AppEvents\Schemes\Apps\.Default\CCSelect
HKCU\AppEvents\Schemes\Apps\.Default\Close
HKCU\AppEvents\Schemes\Apps\.Default\Close\.Current
HKCU\AppEvents\Schemes\Apps\.Default\Close\.Default
y mucho mas largo, que son las claves de registro con sus path.

Necesito poblar un listview con ese arbol, pero no se me ocurre como hacer una funcion recursiva para que me haga ese tipo de metodo.

Espero que me hayan entendido.

Muchas Gracias.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Recursion para poblar un treeview
« Respuesta #1 en: Abril 17, 2014, 05:33:13 pm »
Código: [Seleccionar]
Private Sub Form_Load()

    AddNodes "HKCU\AppEvents\Schemes"
    AddNodes "HKCU\AppEvents\Schemes\Apps\.Default\Close\.Current"
    AddNodes "HKCU\AppEvents\Schemes\Apps\.Default"
    AddNodes "HKCU\AppEvents\Schemes\Apps\.Default\AppGPFault\.Current"
    AddNodes "HKCU\AppEvents\Schemes\Apps\.Default\.Default\.Current"
End Sub

Private Sub AddNodes(ByVal sData As String)
    Dim cColl As Collection
    Set cColl = SplitItems(sData)
    Insert cColl, Nothing
End Sub

Private Function Insert(ByVal cItems As Collection, ByVal objParent As Node)
    Dim objNode As Node
   
    If Not cItems.Count = 0 Then

        If objParent Is Nothing Then
       
            For Each objNode In TreeView1.Nodes
                If objNode.Text = cItems.Item(1) Then
                    Set objParent = objNode
                    cItems.Remove 1
                    Insert cItems, objParent
                    Exit Function
                End If
            Next
       
            Set objParent = TreeView1.Nodes.Add(Text:=cItems.Item(1))
            cItems.Remove 1
            Insert cItems, objParent
   
        Else
       
            For Each objNode In TreeView1.Nodes
                If objNode.Text = cItems.Item(1) Then
                    If objNode.Parent = objParent Then
                        Set objParent = objNode
                        cItems.Remove 1
                        Insert cItems, objParent
                        Exit Function
                    End If
                End If
            Next
       
            Set objParent = TreeView1.Nodes.Add(objParent, tvwChild, Text:=cItems.Item(1))
            cItems.Remove 1
            Insert cItems, objParent
        End If
    End If
End Function

Private Function SplitItems(sData As String) As Collection
    Dim svItems() As String
    Dim i As Long
   
    Set SplitItems = New Collection
    svItems = Split(sData, "\")
    For i = 0 To UBound(svItems)
        SplitItems.Add svItems(i)
    Next
   
End Function

79137913

  • Megabyte
  • ***
  • Mensajes: 185
  • Reputación: +21/-4
  • 4 Esquinas
    • Ver Perfil
    • Eco.Resumen Resumenes Cs. Economicas
Re:Recursion para poblar un treeview
« Respuesta #2 en: Abril 17, 2014, 08:21:44 pm »
HOLA!!!

Mil Gracias cobein!

El lunes lo testeo :D

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas