Nodes & XML - File Sample – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nodes & XML - File Sample – Visual Basic – Fórum – Programujte.comNodes & XML - File Sample – Visual Basic – Fórum – Programujte.com

 

Trebor0
Stálý člen
31. 3. 2012   #1
-
0
-

Cavte

Potreboval by som nejaký link na File sample ako uložit nodes s treeview do XML (samozrejme aj s ich child nodes). Staci ked napisete link na návod podla ktorého ste sa vi riadili ked ste robili nieco podobne prvý krat respektive link na nejaký file sample kde je to už hotové. Vopred dakujem.

Nahlásit jako SPAM
IP: 84.47.12.–
Trebor0
Stálý člen
6. 4. 2012   #2
-
0
-

nazdar ........ mám takýto kód na ukladanie nodes do XML súboru 

       Dim settings As New XmlWriterSettings()
        settings.Indent = True

        ' Initialize the XmlWriter.
        Dim XmlWrt As XmlWriter = XmlWriter.Create("MyName.xml", settings)

        With XmlWrt


            .WriteStartDocument()

            .WriteComment("TreeView1Nodes")



            Dim i As Integer = 0
            Dim iend As Integer = TreeView1.Nodes.Count - 1
            Do Until i = iend
                .WriteStartElement(TreeView1.Nodes.Item(i).Text)
                Dim i2 As Integer = 0
                Dim i2end As Integer = TreeView1.Nodes.Item(i).Nodes.Count - 1
                Do Until i2 = i2end
                    .WriteStartElement(TreeView1.Nodes.Item(i).Nodes.Item(i2).Text)
                    Dim i3 As Integer = 0
                    Dim i3end As Integer = TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Count - 1
                    Do Until i3 = i3end
                        .WriteStartElement(TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Item(i3).Text)
                        i3 = i3 + 1
                    Loop
                    Dim i3info As String = TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Item(i3end).Text
                    .WriteEndElement(i3info)
                    i2 = i2 + 1
                Loop
                Dim i2info As String = TreeView1.Nodes.Item(i).Nodes.Item(i2end).Text
                .WriteEndElement(i2info)
                i = i + 1
            Loop
            Dim iinfo As String = TreeView1.Nodes.Item(iend).Text
            .WriteEndElement(iinfo)


            .WriteEndElement()
            .WriteEndDocument()
            .Close()


        End With


        MessageBox.Show("XML file saved.")

ale pri .WriteEndElement(iinfo) ; .WriteEndElement(i2info) ; WriteEndElement(i3info) mi vyhodí túto chybu 

"Too many arguments to 'Public MustOverride Sub WriteEndElement()'."

Poradte pls ..... Vopred díky

Nahlásit jako SPAM
IP: 84.47.12.–
liborb
~ Redaktor
+18
Guru
6. 4. 2012   #3
-
0
-

WriteEndElement nemá parametry.

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
6. 4. 2012   #4
-
0
-

aha ... díky

Nahlásit jako SPAM
IP: 84.47.12.–
Trebor0
Stálý člen
6. 4. 2012   #5
-
0
-

a nevies preco mi to aj tak nic nezapíše do súboru

Nahlásit jako SPAM
IP: 84.47.12.–
liborb
~ Redaktor
+18
Guru
6. 4. 2012   #6
-
0
-

Pokud máš jen prázdný soubor, tak zkus před Close dát ještě .Flush().

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
6. 4. 2012   #7
-
0
-

teraz to vyzerá asi takto 

Dim settings As New XmlWriterSettings()
        settings.Indent = True

        ' Initialize the XmlWriter.
        Dim XmlWrt As XmlWriter = XmlWriter.Create("MyName.xml", settings)

        With XmlWrt


            .WriteStartDocument()

            .WriteComment("TreeView1Nodes")



            Dim i As Integer = 0
            Dim iend As Integer = TreeView1.Nodes.Count - 1
            Do Until i = iend
                .WriteStartElement(TreeView1.Nodes.Item(i).Text)
                Dim i2 As Integer = 0
                Dim i2end As Integer = TreeView1.Nodes.Item(i).Nodes.Count - 1
                Do Until i2 = i2end
                    .WriteStartElement(TreeView1.Nodes.Item(i).Nodes.Item(i2).Text)
                    Dim i3 As Integer = 0
                    Dim i3end As Integer = TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Count - 1
                    Do Until i3 = i3end
                        .WriteStartElement(TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Item(i3).Text)
                        i3 = i3 + 1
                    Loop
                    Dim i3info As String = TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Item(i3end).Text
                    .WriteEndElement()
                    i2 = i2 + 1
                Loop
                Dim i2info As String = TreeView1.Nodes.Item(i).Nodes.Item(i2end).Text
                .WriteEndElement()
                i = i + 1
            Loop
            Dim iinfo As String = TreeView1.Nodes.Item(iend).Text
            .WriteEndElement()


            .WriteEndElement()  'A tu my vyhadzuje InvalidOperationException !!!!!!!!!!!!!!!!!!!!!

            .WriteEndDocument()

	    .Flush() 'Neviem či to má byť tu alebo úplne na začiatku !!!!!!!!!!!!!!!!!!!!!!
            .Close()


        End With


        MessageBox.Show("XML file saved.")
Nahlásit jako SPAM
IP: 84.47.12.–
Trebor0
Stálý člen
6. 4. 2012   #8
-
0
-

uz netreba uz som to vyriesil ale teraz mam uz konecne kód, ktorý už aj dačo ukladá ale ked mám prvý Node a ten má Child Node a ten má ešte jedno Child Node tak mi to do XML uloží iba

<Node0>
  <Node1 />

a ďalej nepokračuje ......

Kód:

Dim settings As New XmlWriterSettings()
        settings.Indent = True
        Dim XmlWrt As XmlWriter = XmlWriter.Create("C:\MyName.xml", settings)

        With XmlWrt
            .WriteStartDocument()

            .WriteComment("TreeView1Nodes")

            Dim i As Integer = 0
            Dim iend As Integer = TreeView1.Nodes.Count - 1
            Do Until i = iend
                Try
                    .WriteStartElement(TreeView1.Nodes.Item(i).Text)
                    Dim i2 As Integer = 0
                    Dim i2end As Integer = TreeView1.Nodes.Item(i).Nodes.Count - 1


                    Try
                        If TreeView1.Nodes.Item(i).Nodes.Item(0).IsVisible = True Then
                            Do Until i2 = i2end
                                Try
                                    .WriteStartElement(TreeView1.Nodes.Item(i).Nodes.Item(i2).Text)
                                    Dim i3 As Integer = 0
                                    Dim i3end As Integer = TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Count - 1


                                    Try
                                        If TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Item(0).IsVisible = True Then
                                            Do Until i3 = i3end
                                                Try
                                                    .WriteStartElement(TreeView1.Nodes.Item(i).Nodes.Item(i2).Nodes.Item(i3).Text)

                                                    i3 = i3 + 1
                                                Catch ex As Exception
                                                    MsgBox("i3 Error")
                                                    Exit Do
                                                End Try
                                            Loop
                                            .WriteEndElement()
                                        Else
                                            i2 = i2 + 1
                                        End If
                                    Catch ex As NullReferenceException
                                        i2 = i2 + 1
                                    Catch ex As Exception
                                        MsgBox("Unknown Error i2!")
                                        Exit Do
                                    End Try
                                Catch ex As Exception
                                    Exit Do
                                End Try
                            Loop
                            .WriteEndElement()
                        Else
                            i = i + 1
                        End If
                    Catch ex As NullReferenceException
                        i = i + 1
                    Catch ex As Exception
                        MsgBox("Unknown Error i!")
                        Exit Do
                    End Try
                Catch ex As Exception
                    Exit Do
                End Try
            Loop
            .WriteEndElement()

            .WriteEndDocument()

            .Flush()

            .Close()
        End With
        MessageBox.Show("XML file saved.")

neviem preco mi to neuklada ....

Nahlásit jako SPAM
IP: 84.47.12.–
liborb
~ Redaktor
+18
Guru
6. 4. 2012   #9
-
0
-

A co na to říká debugger a krokování? Projde ti to celý kód nebo tě to někde vyhodí?

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
6. 4. 2012   #10
-
0
-

.WriteStartElement(TreeView1.Nodes.Item(i).Text) 
pri tomto to ešte ide v pohode ale keď už prejde na Dim i2 As Integer = 0 tak vyhodí chybu

Nahlásit jako SPAM
IP: 84.47.12.–
liborb
~ Redaktor
+18
Guru
6. 4. 2012   #11
-
0
-

Takže to vyhodí  výjimku? A jakou? Nebo to zdechne jinou chybou? A jakou?

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
7. 4. 2012   #12
-
0
-

vyhodí toto

 

MsgBox("Unknown Error i!")
Nahlásit jako SPAM
IP: 84.47.12.–
liborb
~ Redaktor
+18
Guru
7. 4. 2012   #13
-
0
-

Takže ti to skončí na výjimce. Takže stačí zobrazit informace v ní obsažené a víš, kde je chyba.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 80.84.1.–
Trebor0
Stálý člen
8. 4. 2012   #14
-
0
-

Nevieš prečo mi tu  

.WriteStartElement(TreeView1.Nodes.Item(i1).Text)

vyhodí chybu Invalid Operation ???

Nahlásit jako SPAM
IP: 84.47.12.–
Trebor0
Stálý člen
8. 4. 2012   #15
-
0
-

i1 = 0

Nahlásit jako SPAM
IP: 84.47.12.–
Trebor0
Stálý člen
8. 4. 2012   #16
-
0
-

uz by som to aj mal ale zapisuje mi to všetko do jedneho riadku ...

Nahlásit jako SPAM
IP: 84.47.12.–
liborb
~ Redaktor
+18
Guru
10. 4. 2012   #17
-
0
-

Zkus nastavit další vlastnosti z XmlWriterSettings.

Nahlásit jako SPAM
IP: 78.80.52.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

TreeView.Nodes... — založil Trebor

Zoradenie Nodes — založil Trebor

Presuvanie Nodes — založil Trebor

File Filter — založil Forrest

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý