SaveFileTree




Option Explicit
Dim FSO As FileSystemObject
Dim TXTstream As TextStream

'Save Nodes in a Text file


Public Sub SaveTreeViewinFile(ByVal TV As TreeView, _
ByVal FileName As String)
Dim i As Long
Dim tempo As String
Dim Neu As Node
On Error Resume Next
Set TXTstream = FSO.CreateTextFile(FileName)
If Err.Number <> 0 Then Goto gestion_erreur

For i = 1 To TV.Nodes.Count
Set Neu = TV.Nodes(i)
tempo = Neu.Text + Chr(9) + _
CStr(Neu.Parent.Key) + Chr(9) + _
Neu.Key + Chr(9) + _
CStr(Neu.Image) + Chr(9) + _
CStr(Neu.Selectedimage) + Chr(9) + _
Neu.tag
If Err.Number <> 0 Then ' if no parent
tempo = Neu.Text + Chr(9) + _
"" + Chr(9) + _
Neu.Key + Chr(9) + _
CStr(Neu.Image) + Chr(9) + _
CStr(Neu.Selectedimage) + Chr(9) + _
Neu.tag
Err.Clear
End If
TXTstream.WriteLine tempo
Next i
TXTstream.Close
Exit Sub
gestion_erreur:
MsgBox Err.Description, vbCritical, "ERREUR n°" & _
CStr(Err.Number)
End Sub

'Load Nodes from a text file to a TreeView


Public Sub LoadTreeViewFromFile(ByVal TV As TreeView, _
ByVal FileName As String)
Dim LigneTexte As String
Dim Texte As String
Dim Parent As String
Dim Key As String
Dim Image As String
Dim Selectedimage As String
Dim tag As String
On Error Goto gestion_erreur
TV.Nodes.Clear
Set TXTstream = FSO.OpenTextFile(FileName)
Do
LigneTexte = TXTstream.ReadLine
Texte = Mid(LigneTexte, 1, InStr(1, LigneTexte, _
Chr(9), vbTextCompare) - 1)
LigneTexte = Replace(LigneTexte, Texte + Chr(9), "", , 1)
If Mid(LigneTexte, 1, 1) = Chr(9) Then
Parent = 0
LigneTexte = Mid(LigneTexte, 2)
Else
Parent = (Mid(LigneTexte, 1, _
InStr(1, LigneTexte, Chr(9), vbTextCompare) - 1))
LigneTexte = Replace(LigneTexte, CStr(Parent) + _
Chr(9), "", , 1)
End If
Key = Mid(LigneTexte, 1, InStr(1, LigneTexte, _
Chr(9), vbTextCompare) - 1)
LigneTexte = Replace(LigneTexte, Key + Chr(9), "", , 1)
Image = Mid(LigneTexte, 1, InStr(1, _
LigneTexte, Chr(9), vbTextCompare) - 1)
LigneTexte = Replace(LigneTexte, Image + Chr(9), "", , 1)
Selectedimage = Mid(LigneTexte, 1, _
InStr(1, LigneTexte, Chr(9), vbTextCompare) - 1)
LigneTexte = Replace(LigneTexte, Selectedimage + _
Chr(9), "", , 1)
tag = LigneTexte
If Selectedimage = "" Then Selectedimage = Image
If Parent <> "0" Then
If Image <> "" Then
TV.Nodes.Add Parent, 4, Key, Texte, CLng(Image), _
CLng(Selectedimage)
Else
TV.Nodes.Add Parent, 4, Key, Texte
End If
Else
If Image <> "" Then
TV.Nodes.Add , , Key, Texte, CLng(Image), _
CLng(Selectedimage)
Else
TV.Nodes.Add , , Key, Texte
End If
End If
Loop Until TXTstream.AtEndOfStream
TXTstream.Close
Exit Sub
gestion_erreur:
MsgBox Err.Description, vbCritical, "ERREUR n°" & _
CStr(Err.Number)
End Sub

Private Sub Class_Initialize()
Set FSO = New FileSystemObject
End Sub

Private Sub Class_Terminate()
Set FSO = Nothing
Set TXTstream = Nothing
End Sub










( savefiletree.html )- by Paolo Puglisi - Modifica del 17/12/2023