26 messaggi dal 08 dicembre 2002
Ciao a tutti,
ho un problema in un mio programma dove vorrei appoggiare un file xml su un array di nodi.. l'idea, banale, è nata dal fatto che preferivo averlo in memoria invece di accedere continuamente al file.. premetto che il file comunque è piccolo come dimensione!
Riporto l'esempio:
        Dim READXML() As XmlTextReader
        Dim Liv As Int32
        Dim myx As XmlTextReader = New XmlTextReader("Miofile.xml")
        While myx.Read = True
            ReDim Preserve READXML(Liv)
            READXML(READXML.Length - 1) = myx
            Liv += 1
        End While
        myx.Close()

Il problema a cuo sto impazzendo è che il primo di indice zero si riempie perfettamente.. quando però leggo il secondo nodo dal file e lo inserisco nel xmltextreader di indice 1, non capisco perchè lo ripete anche in quello di indice zero!!!!
Alla fine nel mio array ci sono tanti nodi quanti nel file.. peccato che tutti uguali all'ultimo!!!

Aiuto!
sto impazzendo..
Ciao
Andrea
20 messaggi dal 24 marzo 2005
secondo me è meglio usare una lista, in questo modo non ti devi preoccupare di allocare-deallocare memoria.

READXML As List<XmlTextReader>
READXML = new List<XmlTextReader>()

e poi per riempirlo

READXML.Add(...)
26 messaggi dal 08 dicembre 2002
alla fine ho risolto appoggiando il tutto in un xmldocument..
però quello che volevo capire è se questo è un bug di vs2005!

scusa ma.. un array di oggetti non deve sbagliare quando viene riempito..
non trovi?
20 messaggi dal 24 marzo 2005
si daccordo.

rileggendo il tuo codice ho trovato:

READXML(READXML.Length - 1) = myx

mi sa che è qui l'errore.
cioè tu gli passi sempre lo stesso oggetto. forse devi usare un metodo o una proprietà di quell'oggetto.

non conosco bene xmltextreader. io uso sempre xmldocumente e selectnodes()
molto più pratico e semplice

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.