69 messaggi dal 29 luglio 2004
www.pentalab.it
AIUTO!!!!

Dim sb As New System.Text.StringBuilder(Int32.MaxValue)

da un errore!!!!!! come mai? come risolvo?
devo mettere un file di 30 MB in una stringa... come cavolo faccio?
Sei veramente sicuro di dover caricare 30MB in memoria?!?!

BTW usa la classe System.IO.FileStream per leggere, scrivere, aprire e chiudere file su file system. Puoi specificare il percorso direttamente nel costruttore e leggere blocchi di byte contigui.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
69 messaggi dal 29 luglio 2004
www.pentalab.it
Il problema rimane: io devo avere il file in memoria.
Inoltre sulla documentazione microsoft c'è pure un esempio relativo alla riga di codice che genera l'errore.

Come mai da errore quella riga?
Scusa, potresti essere un po' più chiaro?
Quale errore?

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
69 messaggi dal 29 luglio 2004
www.pentalab.it
Dim sb As New System.Text.StringBuilder(Int32.MaxValue)

OutOfMemoryException

e lo da anche con un valore inferiore a int.MaxValue
L'eccezione viene sollevata quando non vi è memoria sufficiente per continuare l'esecuzione di un programma.

Nel tuo caso potresti in alternativa pensare di lavorare con un buffer in cui caricare solamente una parte del file in memoria. Il buffer verrebbe aggiornato man mano che scorri il file in lettura. FileStream e gli Stream in genere ti consentono di adottare una soluzione di questo tipo.

Ti consiglio di approfondire la cosa consultando la documentazione su MSDN.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
69 messaggi dal 29 luglio 2004
www.pentalab.it
ho sbagliato io!!!
inizializzare lo stringBuilder a int.maxvalue vuol dire predisporlo per una stringa di circa 2000 GIGABYTE.
E' ovvio che non ho sufficente memoria...

sorry

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.