在VB6中迭代树视图

时间:2015-05-26 18:15:15

标签: vb6 treeview

我在表单上有一个treeview控件,如下所示: enter image description here

我想迭代树视图并将树视图的内容写入ini文件。所以给定树的ini文件看起来像:

[EnvironmentSystem]
UpdateRate=50.0
InclinationAngle=20.7
Latitude=34.0

[Reflection]
NumReflectionLevel=5
NumSunLightLevel=5
NumWeatherLevel=3
TextureNameFormat=Reflection%01d%01d%02d.tga

[CloudsClear]
MaxClouds=48
MaxCloudParticles=51
3DCloudMaterial=CloudMaterial
3DCloudHorizontalSize=1400.0
3DCloudVerticalSize=600.0
3DCloudSizeDeviation=0.6
3DCloudParticleDensity=2.4
ParticleSize=300.0
ParticleSizeDeviation=0.3
MinBaseAltitude=400.0
MaxBaseAltitude=2450.0
UseBottomRow=TRUE

这是我写的代码:

Private Sub TvSaveToIniBtn_Click()
    Dim nodx As Node
    Dim i As Long
    Dim sectionCount As Integer
    sectionCount = TreeView1.Nodes(1).Children
    Set nodx = TreeView1.Nodes(1).Child.FirstSibling
        For i = 1 To sectionCount
        SaveNodesToIni (nodx.Text)
        Set nodx = nodx.Next
    Next
End Sub


Sub SaveNodesToIni(sName As Variant)
Dim tvn As Node
Set tvn = TreeView1.Nodes(sName)
Dim chil As Integer
Dim a As Integer
Dim ret As Integer
Dim keyValuePair() As String
Dim nElements As Integer


chil = tvn.Children: If chil = 0 Then Exit Sub     ' if no children the exit
Set tvn = tvn.Child.FirstSibling
For a = 1 To chil
    keyValuePair = Split(tvn.Text, "=")
    nElements = UBound(keyValuePair) - LBound(keyValuePair) + 1
    If nElements > 0 Then
        ret = WritePrivateProfileString(sName, keyValuePair(0), keyValuePair(1), "C:\\MyPrograms\\config.ini")
    End If
    Set tvn = tvn.Next
Next

End Sub

它没有给出正确的输出,它在第二部分的反射中卡住而且无法读取第三部分。代码有问题。

0 个答案:

没有答案