نمایش نتایج 1 تا 3 از 3

نام تاپیک: نحوه ذخیره نموده و بازیابی اطلاعات درون TreeVeiw در وی بی دات نت

  1. #1

    Post نحوه ذخیره نموده و بازیابی اطلاعات درون TreeVeiw در وی بی دات نت

    سلام دوستان
    اگه کسی می تونه این مشکل من رو حل کنه ممنون میشم.
    مشکل من اینه : نحوه ذخیره نموده و بازیابی اطلاعات درون TreeVeiw به و از درون فایل txt یا فایل xml .

  2. #2

    نقل قول: نحوه ذخیره نموده و بازیابی اطلاعات درون TreeVeiw در وی بی دات نت

    ابتدا :
    <Serializable()> _
    Public Class clsTreeFile
    Public oTreeNode As TreeNode

    End Class

    برای ذخیره :
    Dim dlg As New SaveFileDialog

    dlg.DefaultExt = "txt"
    dlg.Filter = "Text files|*.txt"
    dlg.OverwritePrompt = True

    If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
    ' Save the treeview nodes to file

    Dim oTreeList As New List(Of clsTreeFile)

    For Each oNode As TreeNode In t1.Nodes
    Dim oTree As New clsTreeFile

    oTree.oTreeNode = oNode
    oTreeList.Add(oTree)
    Next

    Using oFileStream As IO.FileStream = IO.File.Open(dlg.FileName, IO.FileMode.Create)
    Dim oBinaryFormatter As New Runtime.Serialization.Formatters.Binary.BinaryForm atter
    oBinaryFormatter.Serialize(oFileStream, oTreeList)
    End Using

    MessageBox.Show("ذخیره با موفقیت انجام شد", "ذخیره", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End If


    برای بازیابی :

    Dim dlg As New OpenFileDialog


    dlg.DefaultExt = "txt"
    dlg.Filter = "Text files|*.txt"

    If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
    ' Open saved file and read the binary data back to the treeview

    t1.Nodes.Clear()

    Dim oTreeList As New List(Of clsTreeFile)

    Using oFileStream As IO.FileStream = IO.File.Open(dlg.FileName, IO.FileMode.Open)
    Dim oBinaryFormatter As New Runtime.Serialization.Formatters.Binary.BinaryForm atter
    oTreeList = CType(oBinaryFormatter.Deserialize(oFileStream), List(Of clsTreeFile))
    End Using

    For Each oNode As clsTreeFile In oTreeList
    t1.Nodes.Add(oNode.oTreeNode)
    Next

    t1.ExpandAll()
    End If

  3. #3
    کاربر دائمی آواتار Hossis
    تاریخ عضویت
    آبان 1386
    محل زندگی
    بیرجند
    پست
    1,731

    نقل قول: نحوه ذخیره نموده و بازیابی اطلاعات درون TreeVeiw در وی بی دات نت

    باز خوانی xml در TV و بالعکس

    Public Class TreeViewSerializer

    ' Xml tag for node, e.g. 'node' in case of <node></node>
    Private Const XmlNodeTag As String = "node"

    ' Xml attributes for node e.g. <node text="Asia" tag="" imageindex="1"></node>
    Private Const XmlNodeTextAtt As String = "text"
    Private Const XmlNodeTagAtt As String = "tag"
    Private Const XmlNodeImageIndexAtt As String = "imageindex"

    '
    ' TODO: Add constructor logic here
    '
    Public Sub New()
    End Sub

    'System.IO.StringWriter s;
    Public Sub SerializeTreeView(treeView As TreeView, fileName As String)
    Dim textWriter As New XmlTextWriter(fileName, System.Text.Encoding.ASCII)
    ' writing the xml declaration tag
    textWriter.WriteStartDocument()
    'textWriter.WriteRaw("\r\n");
    ' writing the main tag that encloses all node tags
    textWriter.WriteStartElement("TreeView")

    ' save the nodes, recursive method
    SaveNodes(treeView.Nodes, textWriter)

    textWriter.WriteEndElement()

    textWriter.Close()
    End Sub

    Private Sub SaveNodes(nodesCollection As TreeNodeCollection, textWriter As XmlTextWriter)
    For i As Integer = 0 To nodesCollection.Count - 1
    Dim node As TreeNode = nodesCollection(i)
    textWriter.WriteStartElement(XmlNodeTag)
    textWriter.WriteAttributeString(XmlNodeTextAtt, node.Text)
    textWriter.WriteAttributeString(XmlNodeImageIndexA tt, node.ImageIndex.ToString())
    If node.Tag IsNot Nothing Then
    textWriter.WriteAttributeString(XmlNodeTagAtt, node.Tag.ToString())
    End If

    ' add other node properties to serialize here

    If node.Nodes.Count > 0 Then


    SaveNodes(node.Nodes, textWriter)
    End If
    textWriter.WriteEndElement()
    Next
    End Sub

    Public Sub DeserializeTreeView(treeView As TreeView, fileName As String)
    Dim reader As XmlTextReader = Nothing
    Try
    ' disabling re-drawing of treeview till all nodes are added
    treeView.BeginUpdate()
    reader = New XmlTextReader(fileName)

    Dim parentNode As TreeNode = Nothing

    While reader.Read()
    If reader.NodeType = XmlNodeType.Element Then
    If reader.Name = XmlNodeTag Then
    Dim newNode As New TreeNode()
    Dim isEmptyElement As Boolean = reader.IsEmptyElement

    ' loading node attributes
    Dim attributeCount As Integer = reader.AttributeCount
    If attributeCount > 0 Then
    For i As Integer = 0 To attributeCount - 1
    reader.MoveToAttribute(i)

    SetAttributeValue(newNode, reader.Name, reader.Value)
    Next
    End If

    ' add new node to Parent Node or TreeView
    If parentNode IsNot Nothing Then
    parentNode.Nodes.Add(newNode)
    Else
    treeView.Nodes.Add(newNode)
    End If

    ' making current node 'ParentNode' if its not empty
    If Not isEmptyElement Then
    parentNode = newNode

    End If
    End If
    ' moving up to in TreeView if end tag is encountered
    ElseIf reader.NodeType = XmlNodeType.EndElement Then
    If reader.Name = XmlNodeTag Then
    parentNode = parentNode.Parent
    End If
    'Ignore Xml Declaration
    ElseIf reader.NodeType = XmlNodeType.XmlDeclaration Then
    ElseIf reader.NodeType = XmlNodeType.None Then
    Return
    ElseIf reader.NodeType = XmlNodeType.Text Then
    parentNode.Nodes.Add(reader.Value)

    End If
    End While
    Finally
    ' enabling redrawing of treeview after all nodes are added
    treeView.EndUpdate()
    reader.Close()
    End Try
    End Sub

    ''' <summary>
    ''' Used by Deserialize method for setting properties of TreeNode from xml node attributes
    ''' </summary>
    ''' <param name="node"></param>
    ''' <param name="propertyName"></param>
    ''' <param name="value"></param>
    Private Sub SetAttributeValue(node As TreeNode, propertyName As String, value As String)
    If propertyName = XmlNodeTextAtt Then
    node.Text = value
    ElseIf propertyName = XmlNodeImageIndexAtt Then
    node.ImageIndex = Integer.Parse(value)
    ElseIf propertyName = XmlNodeTagAtt Then
    node.Tag = value
    End If
    End Sub

    Public Sub LoadXmlFileInTreeView(treeView As TreeView, fileName As String)
    Dim reader As XmlTextReader = Nothing
    Try
    treeView.BeginUpdate()
    reader = New XmlTextReader(fileName)

    Dim n As New TreeNode(fileName)
    treeView.Nodes.Add(n)
    While reader.Read()
    If reader.NodeType = XmlNodeType.Element Then
    Dim isEmptyElement As Boolean = reader.IsEmptyElement
    Dim text As New StringBuilder()
    text.Append(reader.Name)
    Dim attributeCount As Integer = reader.AttributeCount
    If attributeCount > 0 Then
    text.Append(" ( ")
    For i As Integer = 0 To attributeCount - 1
    If i <> 0 Then
    text.Append(", ")
    End If
    reader.MoveToAttribute(i)
    text.Append(reader.Name)
    text.Append(" = ")
    text.Append(reader.Value)
    Next
    text.Append(" ) ")
    End If

    If isEmptyElement Then
    n.Nodes.Add(text.ToString())
    Else
    n = n.Nodes.Add(text.ToString())
    End If
    ElseIf reader.NodeType = XmlNodeType.EndElement Then
    n = n.Parent

    ElseIf reader.NodeType = XmlNodeType.XmlDeclaration Then
    ElseIf reader.NodeType = XmlNodeType.None Then
    Return
    ElseIf reader.NodeType = XmlNodeType.Text Then
    n.Nodes.Add(reader.Value)

    End If
    End While
    Finally
    treeView.EndUpdate()
    reader.Close()
    End Try
    End Sub
    End Class

تاپیک های مشابه

  1. فهميدن انتخاب كردن گره از treeveiw
    نوشته شده توسط mehdad.koulab در بخش VB.NET
    پاسخ: 0
    آخرین پست: جمعه 24 تیر 1390, 13:12 عصر
  2. مشکل با راست چین کردن Treeveiw
    نوشته شده توسط MNosouhi در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: دوشنبه 29 آبان 1385, 13:44 عصر
  3. کمک در treeVeiw لطفا راهنمایی کنید
    نوشته شده توسط sahra_777 در بخش VB.NET
    پاسخ: 12
    آخرین پست: شنبه 06 اسفند 1384, 11:29 صبح
  4. TreeVeiw in ASP.NET
    نوشته شده توسط FirstLine در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 31 مرداد 1384, 13:59 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •