Newsgroup: it.comp.lang.visual-basic
Titolo: limite file vb

Nel mio progetto vb è presente una classe(.cls) contenente all'incirca 150
funzioni. In futura se ne potrebbero aggiungere molte altre. Il file è di
2.909 kb e di 65.586 righe. Come mai, aggiungendo un'altra funzione mi va in
palla vb? Perchè è troppo grosso il file o sono troppe le righe? Sapreste
darmi un consiglio?
Grazie e buon lavoro.

 ha scritto nel messaggio news:430c8...@x-privat.org...

Sono troppe le righe.
Una classe contenente 150 funzioni non è una classe, è una discarica.
Vedi di "parzializzare" il problema.
Ciao
--
Reporting tool: 
http://www.neodatatype.net

 ha scritto nel messaggio news:430c8...@x-privat.org...

dalla guida:
Limitazioni relative ai dati
Le limitazioni descritte di seguito sono relative alle variabili del
linguaggio Visual Basic.
Dati di moduli di form, standard e di classe
Il segmento di dati (ovvero i dati definiti nella sezione Dichiarazioni) del
modulo VBA di qualsiasi form o modulo di Visual Basic può avere dimensioni
massime pari a 64 KB. Il segmento contiene i seguenti dati:
Variabili locali dichiarate con Static.
Variabili a livello di modulo diverse da matrici e da stringhe di lunghezza
variabile.
4 byte per ciascuna matrice a livello di modulo e stringhe a lunghezza
variabile.
Routine, tipi e variabili
Quando in una routine o in un modulo viene superato il limite massimo di 64
KB di codice, viene generato un errore di compilazione.
Se si crea una routine in cui vengono definite variabili locali per una
quantità di memoria maggiore di 64 KB, verrà generato l'errore "Troppe
variabili locali non statiche".
Se si crea un modulo in cui vengono definite variabili a livello di modulo
per una quantità di memoria maggiore di 64 KB oppure se si crea un tipo
definito dall'utente di dimensioni maggiori di 64KB, verrà generato l'errore
"I dati di tipo fisso o statico non possono evere dimensioni maggiori di 64
KB".
Per risolvere questo errore, è possibile suddividere le routine di grandi
dimensioni in routine più piccole o spostare le dichiarazioni a livello di
modulo in altri moduli.
Le dimensioni di una matrice dichiarata come variabile non contribuiscono a
definire le dimensioni totali della matrice. Il limite di 64 KB deve essere
rispettato solo per quanto riguarda il descrittore della matrice. È pertanto
possibile, ad esempio, specificare la dichiarazione Dim x(1000000) As Byte
in una routine o a livello di modulo. Si potrebbero tuttavia verificare
problemi di insufficienza di memoria se si dichiara una matrice fissa di
grandi dimensioni in un record e si dichiarano quindi istanze di tale record
come variabili.
Tipi definiti dall'utente
Le variabili dei tipi definiti dall'utente non devono essere superiori ai 64
KB. La somma delle stringhe di lunghezza variabile in un tipo definito
dall'utente, tuttavia, può superare questo limite. Ciascuna stringa occupa
infatti solo 4 byte in un tipo definito dall'utente, in quanto l'effettivo
contenuto viene registrato separatamente. I tipi definiti dall'utente
possono essere definiti in rapporto ai tipi definiti da altri utenti. La
somma totale dei tipi non deve essere tuttavia superiore a 64 KB.
Spazio dello stack
Gli argomenti e le variabili locali nelle routine occupano spazio dello
stack in fase di esecuzione. Le variabili statiche e a livello di modulo
invece non occupano alcuno spazio dello stack in quanto sono assegnate al
segmento di dati di form o moduli. Lo spazio dello stack viene utilizzato
anche durante l'esecuzione di routine DLL.
Parte dello spazio dello stack viene inoltre utilizzato da Visual Basic
stesso, ad esempio per la registrazione di valori intermedi durante la
valutazione di espressioni.
Le dimensioni totali disponibili per lo stack in Visual Basic sono pari a un
megabyte (1 MB) per thread. Lo stack può superare questo valore se nelle
adiacenze è disponibile memoria libera.
Ulteriori informazioni   Per suggerimenti su come risparmiare spazio dello
stack, vedere "Progettazione in funzione di prestazioni e compatibilità".

 Una classe contenente 150 funzioni non è una classe, è una discarica.
ROTFLMAO
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca