VB.NET如何把treeview中的所有节点(包括子节点导出到txt中)并且还能导入回程序中
展开全部
带索引导出,然后再通过索引导入。
比如文本(索引从零开始):
0=h一级
0-0=hh二级
0-0-0=hh三级
0-0-1=hhh
0-1-0=hhj
1-0-0-0=jkk四级
可以将上级索引省略,关键是程序能够正确识别并导入,分隔符-和=可以选择文本中绝对不出现的字符,否则分割会有麻烦。
导入时先把行分割成lines数组。
然后通过=字符分割每行成为两部分。
通过-字符分割第一部分为N个部分,把这些部分通过cint转换为数字,重新成为treeview的索引,如果n=1那么就是一级节点,如果n=2那么就是二级节点,以此类推。
比如文本(索引从零开始):
0=h一级
0-0=hh二级
0-0-0=hh三级
0-0-1=hhh
0-1-0=hhj
1-0-0-0=jkk四级
可以将上级索引省略,关键是程序能够正确识别并导入,分隔符-和=可以选择文本中绝对不出现的字符,否则分割会有麻烦。
导入时先把行分割成lines数组。
然后通过=字符分割每行成为两部分。
通过-字符分割第一部分为N个部分,把这些部分通过cint转换为数字,重新成为treeview的索引,如果n=1那么就是一级节点,如果n=2那么就是二级节点,以此类推。
更多追问追答
追问
我要源代码
追答
Private Sub Read() '读
Dim a As String = Application.StartupPath & "\data.txt"
Dim One As String() = IO.File.ReadAllLines(a, System.Text.Encoding.Default) '获取文本的所有行。
For Each i As String In One
Dim Two As String() = i.Split("=") '表示节点索引和节点的文本值。
Dim Three As String() = Two(0).Split("-") '表示节点和其所有父节点的索引数组
Dim n As Integer = Three.Length
With TreeView1
If Two.Length = 2 Then
Select Case n
Case 1 '一级节点
.Nodes.Add(Two(1))
Case 2 '二级节点
.Nodes(CInt(Three(0))).Nodes.Add(Two(1))
Case 3 '三级节点
.Nodes(CInt(Three(0))).Nodes(CInt(Three(1))).Nodes.Add(Two(1))
Case Else
'
End Select
End If
End With
Next
End Sub
这是读代码,文本格式就是我上面的例子,还有写代码,知道字数限制,代码测试通过。
展开全部
我这只有VB6,没法提供源码,不过可以给你2个思路,1使用xml保存节点结构;2自动手工编个节点代码,比如说根节点用01表示,一级节点的第一个就是0101,第二个是0102,以此类批
01 中国
0101 湖南
010101 长沙
010102 湘潭
0102 湖北
上面这个例子能看懂不?
01 中国
0101 湖南
010101 长沙
010102 湘潭
0102 湖北
上面这个例子能看懂不?
追问
你用VB6.0做出来我在修改修改
追答
只是给你个思路,优化就看你自己的功底啦
Private Sub Command1_Click()
Dim strIni(4) As String, tmp
strIni(0) = "01 中国"
strIni(1) = "0101 湖南"
strIni(2) = "010101 长沙"
strIni(3) = "010102 湘潭"
strIni(4) = "0102 湖北"
'假设比文件中读取了这此文字内容到strIni
Dim nodX As Node
For i = 0 To 4
tmp = Split(strIni(i), " ")
If Len(tmp(0)) = 2 Then
Set nodX = TreeView1.Nodes.Add(, , "a" & tmp(0), tmp(1))
ElseIf Len(tmp(0)) = 4 Then
Set nodX = TreeView1.Nodes.Add("a" & Left(tmp(0), 2), tvwChild, "a" & tmp(0), tmp(1))
ElseIf Len(tmp(0)) = 6 Then
Set nodX = TreeView1.Nodes.Add("a" & Left(tmp(0), 4), tvwChild, "a" & tmp(0), tmp(1))
End If
Next
nodX.EnsureVisible
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询