TreeView控件和ini文件操作问题,是一个很有趣的问题请高手指点

caoliyong 2003-07-08 04:05:31
我用的ini文件如下内容:
[192.168.0.105]
DataGroupIP=236.168.57.5
CommandGroupIP=236.168.57.5
DataGroupPort=5609
CommandGroupPort=5610
SubnetMask=255.255.255.0
Gateway=10.5.1.254
DeviceType=1
LastConnectPlayer=2
LastConnectChannel=1
Description=wwww
Cannel1Description=AAAA
Cannel2Description=BBBB
Cannel3Description=CCCC
Cannel4Description=DDDD
UseChannel1=1
UseChannel2=1
UseChannel3=1
UseChannel4=1
Cannel1Controller=PELCO-D1
Cannel2Controller=PELCO-D1
Cannel3Controller=PELCO-D1
Cannel4Controller=PELCO-D1
我要做的是软件运行将IP地址([192.168.0.105])下的极端内容显示在TreeView控件中(显示美容有:Description 显示为父节点;Cannel1Description、Cannel2Description、Cannel3Description、Cannel4Description显示为子节点),问题是我在TreeView控件中双击子节点的事件中利用什么信息取出ini文件里该段内容的其它信息,并加以利用。(如取出DataGroupIP、DataGroupPort等信息)
...全文
71 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoliyong 2003-07-09
  • 打赏
  • 举报
回复
非常感谢对我的帮助虽然我还没有仔细看程序,但从运行看应该给我解决问题了,能不能留个
E-MAIL或者QQ号阿,有问题我再请教。我的是liyongcao@sina.com 87950342
cdknet 2003-07-09
  • 打赏
  • 举报
回复
www.eva-ltd.com/ini.rar
这个小工程你下载看一下咯,我不知道可不可以满足你最低的要求!
cdknet 2003-07-09
  • 打赏
  • 举报
回复
我就写一个程序出来吧
cdknet 2003-07-09
  • 打赏
  • 举报
回复
我就写一个程序出来吧
caoliyong 2003-07-09
  • 打赏
  • 举报
回复
可以在程序启动的时候,把ini里的内容读到自定义结构体数阻里,然后只访问这个结构体数组就可以了。别的地方就读不到了。
cdknet 2003-07-09
  • 打赏
  • 举报
回复
[192.168.0.105]
………
………
………
[192.168.0.101]

有很多组这个是吧?192.168.0.105 这些主键除了保存在INI中,还可以从哪里读取吗?
caoliyong 2003-07-09
  • 打赏
  • 举报
回复
我明白你说的意思,但是实际上会友很多组主IP,结构提要定义成数组才行,我的问题是,我怎么判断 node 的值是那一个主IP下的内容。
cdknet 2003-07-08
  • 打赏
  • 举报
回复
在新建Node的时候把 把主IP存在自定义结构的MainIP中,这个父结点中就保存了主IP的信息了
cdknet 2003-07-08
  • 打赏
  • 举报
回复
Private Type MyIP

MainIP as string '在自定义结构中加一个主IP ,存放你想知道的东西嘛
'这个自义结构你可以随便添加自己的项
DataGroupIP As String
DataGroupPort As String
'………
End Type

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim tMyIp As MyIP
tMyIp = Node.Tag
if instr(1,Node.Key ,MainIP)<>"" then
tMyIp = Node.Tag '点了一个父结点
else
tMyIp = Node.Parent.Tag 点了一个子结点
end if
MsgBox tMyIp.MainIP '这不就可以取192.168.0.105 或 192.168.0.101了吗?
End Sub

你是说你怎么从ini中读取 [192.168.0.105] 这个吗?
caoliyong 2003-07-08
  • 打赏
  • 举报
回复
我知道可以获得Node, 我的意思是说怎么通过Node来判断这个值是属于ini文件里那一段信息里的,是[192.168.0.105]里的还是[192.168.0.101]里的
cdknet 2003-07-08
  • 打赏
  • 举报
回复
关键是怎么获得TreeView中的信息???? 这是什么意思?你点击一个Node就可以获得这个Node的所以信息呀,我不大明白你的意思

建立Node的时候你可以这样:
Set tNode = TreeView1.Nodes.Add(, ,"MainIP" & i , "Description") '加父


Set tNode = TreeView1.Nodes.Add("MainIP",4 , "Cannel1Description" & i, "AAAA") '加子

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim tMyIp As MyIP
tMyIp = Node.Tag
if instr(1,Node.Key ,MainIP)<>"" then
tMyIp = Node.Tag '点了一个父结点
else
tMyIp = Node.Parent.Tag 点了一个子结点
end if
MsgBox tMyIp.DataGroupIP & "_" & tMyIp.DataGroupPort
End Sub


caoliyong 2003-07-08
  • 打赏
  • 举报
回复
你这种方法是可以做到,但是ini文件理由很多段IP地址不同的信息,关键是怎么获得TreeView中的信息,又怎么通过获得的信息来判断这些信息是那个IP地址下的信息
如下:
[192.168.0.105]
DataGroupIP=236.168.57.5
CommandGroupIP=236.168.57.5
DataGroupPort=5609
CommandGroupPort=5610
SubnetMask=255.255.255.0
Gateway=10.5.1.254
DeviceType=1
LastConnectPlayer=2
LastConnectChannel=1
Description=wwww
Cannel1Description=AAAA
Cannel2Description=BBBB
Cannel3Description=CCCC
Cannel4Description=DDDD
UseChannel1=1
UseChannel2=1
UseChannel3=1
UseChannel4=1
Cannel1Controller=PELCO-D1
Cannel2Controller=PELCO-D1
Cannel3Controller=PELCO-D1
Cannel4Controller=PELCO-D1

[192.168.0.101]
DataGroupIP=236.168.57.1
CommandGroupIP=236.168.57.1
DataGroupPort=5601
CommandGroupPort=5602
SubnetMask=255.255.255.0
Gateway=10.5.1.254
DeviceType=1
LastConnectPlayer=
LastConnectChannel=
Description=wewe
Cannel1Description=asd
Cannel2Description=SDas
Cannel3Description=asd
Cannel4Description=
UseChannel1=1
UseChannel2=1
UseChannel3=1
UseChannel4=1
Cannel1Controller=PELCO-D1
Cannel2Controller=PELCO-D1
Cannel3Controller=PELCO-D1
Cannel4Controller=PELCO-D1
cdknet 2003-07-08
  • 打赏
  • 举报
回复
如果不用数组就合理利用好tag这个属性,可以在里面存放对象,存放任何数据类型的值,这里用自定义类型就刚好
cdknet 2003-07-08
  • 打赏
  • 举报
回复
Private Type MyIP
DataGroupIP As String
DataGroupPort As String
'………
End Type

public SUB AddNode()
Dim MainKey As String
Dim tepMyIP As MyIP
Dim tNode As Node
tepMyIP.DataGroupIP=236.168.57.5
tepMyIP.DataGroupPort = 5609
'……
Set tNode = TreeView1.Nodes.Add(, , , "192.168.0.105")
tNode.Tag = tepMyIP
end sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim tMyIp As MyIP
tMyIp = Node.Tag
MsgBox tMyIp.DataGroupIP & "_" & tMyIp.DataGroupPort
End Sub
cdknet 2003-07-08
  • 打赏
  • 举报
回复
?????
做咩呀?

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧