vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Stückliste rekursiv durchlaufen 
Autor: Manfred X
Datum: 07.01.17 09:29

Hallo!

Hier ein Beispiel, bei der die hierarchische Datenstruktur
in Treeview-Knoten eingetragen ist.
Die Funktion ermittelt alle Knoten-Pfade, in der ein bestimmter Eintrag
vorkommt und schreibt diese Pfade in eine Liste.

In einem weiteren Schritt ist jeder dieser Pfade zu zerlegen
(Split -- String-Array)
und jeweils alle Werte zwischen Hauptknoten und gesuchtem Eintrag
sind vermutlich für Deinen Fall relevant.

Public Class frmFindTreeNodes
 
    Dim WithEvents trv As New TreeView With {.Parent = Me}
 
 
    Private Sub frmFindTreeNodes_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        'testdaten
        Dim tn As TreeNode = trv.Nodes.Add("Art1")
        tn = tn.Nodes.Add("Art1-1")
        tn = tn.Nodes.Add("krit")
 
        tn = trv.Nodes.Add("Art2")
        tn = tn.Nodes.Add("Art2-1")
        tn = tn.Nodes.Add("Art2-2")
        tn = tn.Nodes.Add("krit")
 
        tn = trv.Nodes.Add("Art3")
        tn = trv.Nodes.Add("krit")
 
        Dim pathlist As New List(Of String)
 
        FindPaths(trv.Nodes, "krit", pathlist)
 
        For i As Integer = 0 To pathlist.Count - 1
            Console.WriteLine(pathlist(i))
        Next i
    End Sub
 
 
    ''' <summary>Suche nach den Knoten-Pfaden, die einen bestimmten Text 
    ' enthalten</summary>
    ''' <param name="tnc">zu durchsuchende Knoten-Auflistung</param>
    ''' <param name="Text">zu suchender Text (Groß-/Kleinschreibung 
    ' ignoriert)</param>
    Private Sub FindPaths(tnc As TreeNodeCollection, _
        ByVal Text As String, ByRef pathlist As List(Of String))
 
        If String.IsNullOrEmpty(Text) Then pathlist = Nothing : Exit Sub
 
        Dim TextToFind As String = Text.Trim.ToLower
 
        For Each tnCurr As TreeNode In tnc
            If tnCurr.Text.Trim.ToLower = TextToFind Then
                pathlist.Add(tnCurr.FullPath)
            End If
 
            'rekursiv weitersuchen 
            FindPaths(tnCurr.Nodes, Text, pathlist)
        Next tnCurr
 
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Stückliste rekursiv durchlaufen2.210Suspeka07.01.17 00:56
Re: Stückliste rekursiv durchlaufen1.137Franki07.01.17 02:21
Re: Stückliste rekursiv durchlaufen1.122Suspeka07.01.17 09:13
Re: Stückliste rekursiv durchlaufen1.254Manfred X07.01.17 09:50
Re: Stückliste rekursiv durchlaufen1.101sv0001007.01.17 09:12
Re: Stückliste rekursiv durchlaufen1.100Suspeka07.01.17 09:25
Re: Stückliste rekursiv durchlaufen1.479Manfred X07.01.17 09:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel