28/04/2024 - migliorabile ha scritto:
Piu' no che si: risparmi memoria MA 20M caratteri potrebbero essere 40MByte, non sono questa gran quantita' di memoria, almeno sui PC moderni
La questione è che i 20 MB di caratteri potrebbero diventare 40 MB, 100 MB, 500 MB di caratteri.
In linea generale, se i volumi raggiungono queste dimensioni, non è difficile ipotizzare che possano anche aumentare in futuro, quindi in ottica di “prepararsi al peggio”, può aver senso a prescindere mettersi in condizioni di non esaminare interamente il file ma solo parzialmente.
28/04/2024 - migliorabile ha scritto:
Inoltre, analizzando una riga alla volta SI SUPPONE che il testo sia COMPLETAMENTE contenuto nella riga e non distribuito su piu' righe.
Trattandosi di un documento XML, è lecito ipotizzare che - sia che si tratti di un testo o del nome di un elemento - questo non sia spezzato su più righe, altrimenti ciò invaliderebbe anche la validità formale del documento.
Certo, se il documento XML è tutto su una riga, allora concordo che non ci sia nulla da fare in questo senso, o meglio che la soluzione vada cercata in altro modo, magari entrando nel merito del formato XML e adottando un “approccio SAX” sullo stesso, caricando byte un poco alla volta bufferizzando e “muovendosi” tra gli elementi.
Sono tutti aspetti da considerare, ma prima bisogna capire lo stato dell'arte e la fonte del problema principale, perché onestamente dubito che il blocco della applicazione sia dovuta alla ricerca di testo in 20 MB di caratteri, ma su questo solo l'autore della discussione può illuminare.