|
Pokud jde o obecný postup, stačí procházet pole po řádcích a pokud ještě neexistuje daná TreeNode s konkrétním státem, tak ji vytvořit a zbytek řádku přidat pod ní. Kód by vypadal třeba takto:
Dim pole(,) As String = {{"0", "Rakousko", "U jezera", "Hotel Pramen"}, _
{"1", "Francie", "V udoli", "Hotel Viola"}, _
{"2", "Slovensko", "V dire", "Penzion Branik"}, _
{"3", "Rakousko", "U jezera", "Hotel Delo "}, _
{"4", "Francie", "Pod udolim", "Penzion Nikoho "}, _
{"5", "Slovensko", "U dire", "Hotel Noc "}, _
{"6", "Slovensko", "Nad dirou", "Hotel Blbec "}, _
{"7", "Rakousko", "U jezera", "Hotel Zajic "}, _
{"8", "Rakousko", "Pod mostem", "Penzion Pes "}, _
{"9", "Rakousko", "Nad mostem", "Hotel Slunce "}, _
{"10", "Francie", "Nad udolim", "Hotel Modry"}}
For i As Integer = 0 To pole.GetLength(0) - 1 'projít všechny řádky
Dim n As TreeNode
'zkusit najít stát a uložit ho do n
Dim f() As TreeNode = TreeView1.Nodes.Find(pole(i, 1), False)
If f.Length = 0 Then 'pokud ještě ve stromečku daný stát není, přidáme ho
n = TreeView1.Nodes.Add(pole(i, 1), pole(i, 1))
Else
n = f(0) 'stát existuje, přiřadíme ho do n
End If
'zkusit najít lokalitu a uložit ji do n
f = n.Nodes.Find(pole(i, 2), False)
If f.Length = 0 Then 'pokud ještě lokalita ve stromečku není, přidáme ji
n = n.Nodes.Add(pole(i, 2), pole(i, 2))
Else
n = f(0) 'lokalita existuje, přiřadíme ho do n
End If
'přidat hotel do lokality a poznamenat si k němu index
n.Nodes.Add(pole(i, 0), pole(i, 3))
Next
Všimněte si hlavně metody Nodes.Find, která najde položku s daným klíčem (druhý parametr říká, že se má procházet jen aktuální úroveň a ne celý podstrom) a metody Nodes.Add, která přidá položku s daným klíčem a textem.
|