Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET] Leggere xml > 100mb

    Salve a tutti,

    sto realizzando un applicativo in vb.net, nel quale devo fare una ricerca di alcuni dati in file xml piuttosto grandi (dai 100 ai 200mb)
    il metodo che usavo di solito è purtroppo poco efficiente, e arriva addirittura a frozzare il pc per 1 minuto quando va a leggere il file, ma non ne conosco altri purtroppo

    vi incollo qui sotto il codice che uso ora, sapete come migliorarlo o addirittura un altro modo per leggere i dati? Grazie in anticipo

    codice:
                        Dim m_xmld As XmlDocument
                        Dim m_nodelist As XmlNodeList
                        Dim m_node As XmlNode
                        m_xmld = New XmlDocument()
                        m_xmld.Load(AppPath & "\" & Proj(i)(0) & "_user.xml")
                        m_nodelist = m_xmld.SelectNodes("/users/user")
                        For Each m_node In m_nodelist
                            If m_node.ChildNodes.Item(0).InnerText = Proj(i)(2) Then
                                ToReport(i)(0) = m_node.ChildNodes.Item(4).InnerText
                                ToReport(i)(1) = m_node.ChildNodes.Item(5).InnerText
                            End If
                        Next
    Note: Proj e ToReport sono due array stringa multidimensionali

  2. #2
    Approfitto del thread per porre un'altra domanda(non posso piu editare il primo post purtroppo):

    mi sarebbe enormemente comodo importare l'xml di cui sopra in un db sql (in locale) ... consigli per renderlo il più veloce possibile? :master:

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    La soluzione è semplice: non puoi elaborare un simile file caricandolo tutto in memoria ed esplorandone la struttura.

    Devi usare un approccio "SAX like", cioè devi interpretare il file durante il caricamento usando le apposite classi (vedi MSDN) memorizzando o verificando le informazioni necessarie durante la scansione del documento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Originariamente inviato da alka
    La soluzione è semplice: non puoi elaborare un simile file caricandolo tutto in memoria ed esplorandone la struttura.

    Devi usare un approccio "SAX like", cioè devi interpretare il file durante il caricamento usando le apposite classi (vedi MSDN) memorizzando o verificando le informazioni necessarie durante la scansione del documento.

    Ciao!
    Ciao,

    ho provato a cercare qualche esempio ma purtroppo non ho trovato nulla. Avresti qualche link? Grazie

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da Illidanz
    ho provato a cercare qualche esempio ma purtroppo non ho trovato nulla.
    In meno di 10 minuti hai già cercato?

    Ti dò un altro pochino di tempo per cercare di nuovo, perché non voglio mettermi io ad usare mezz'ora del mio tempo per fare le ricerche al posto tuo. Non me ne volere...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.