Newsgroup: it.comp.lang.visual-basic
Titolo: [!] Subroutine troppo lunga !

Non mi era mai capitato e non lo sapevo: Visual Basic non consente di
scrivere procedure più grandi di 64K !
Il codice in questione era un lungo elenco di gruppi di istruzioni simili,
così ecco raggiunto il limite.
Saluti!

[*Rogis* : 
rogi...@iol.it
] ha scritto:

Beh, l'hai detto: se hai "un lungo elenco di gruppi di istruzioni simili"
hai sbagliato a non concentrarle un varie S/F esterne...


Beh, considerato il fatto che una funzione non dovrebbe essere più lunga
di 20-30 righe per motivi di leggibilità, non mi pare un gran limite...
Ciao.
-- 
BSD is for UNIX lovers -- linux is for Windows haters.

 
Dipende da quanto sono lunghe le righe e largo il monitor!
;-)
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 Dipende da quanto sono lunghe le righe e largo il monitor!
LOL ;-)


 di 20-30 righe per motivi di leggibilità, non mi pare un gran limite...
20-30 righe?
Ma stai scherzando?
La "leggibilità" si ottiene strutturando correttamente, commentando
correttamente, nominando correttamente, limitando il campo di validità delle
variabili, ecc.
In teoria potrei essere d'accordo con te, in pratica è pura utopia.
Buon lavoro!

 hai sbagliato a non concentrarle un varie S/F esterne...
Non direi proprio, si tratta di definizioni di indirizzi su un PLC
(ovviamente uno diverso dall'altro) per istanziare numerosi tags di una DLL
esterna di comunicazione, quindi non esiste affatto un motivo  logico per
concentrarle altrove...

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Caso mai in un file di testo?
o meglio...
In una tabella modificabile senza riscrivere codice o finirsi gli
occhi a cercarlo?
Fallo in Access va!
Tabella
 indirizziPLC
Campi
IndirizzoEsadecimale (TEXT)(PRIMARY KEY)
Descrizione(TEXT...ti vorrai ricordare che c'č su questo indirizzo
immagino)
ValoreDefault as Byte? Integer? Long? guarda tu!
Varie ed eventuali
lo usi con
Apri recordset
RS.move first
do
    IndPLC=rs("Indirizzo")
    descPLC=rs("Descrizione")
...facci quello che vuoi
    rs.movenext
loop until rs.eof
mi sembra anche semplicissimo a questo punto ritrovare un valore ...č
una query!
Invece di stare a pulciarsi 64.000 linee di codice...e se scazzi a
scrivere???
Mamma mia non ti č passata piů!!!
Ciao!
- --
Il Wodkino Nazionale č a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 Quotefix e altro:
http://www.martek.it/go.asp?portamia=4
Usr: ICLVB Pw: amici
-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.2
iQA/AwUBPvFtX6sxeHT1lQ6wEQJOOQCg7ptfQVpdlQNdWtSdrHR4U7zI5dMAoJqB
ymZu6oY09A2XqJrprLimzcAY
=yKng
-----END PGP SIGNATURE-----

 Mamma mia non ti è passata più!!!
Gli indirizzi non sono dispersi nelle righe suddette, bensì concentrati in
un modulo specifico.
Il metodo che suggerisci, comunque non è utilizzabile nel mio caso per vari
motivi.
In ogni caso non si tratta di 64.000 righe di codice, ma di circa 3000 in
tutto, che comunque non sono poche...

 tutto, che comunque non sono poche...
Rogis, nessuno può dire che tu (o chicchessia) _devi_ scrivere in un certo
modo.
Semmai lo può consigliare. Ora, 3000 righe in una sola S/F sono comunque
tante, anche se scritte per bene e ben leggibili e, siccome hai scritto
"...Il codice in questione era un lungo elenco di gruppi di istruzioni
simili..." il consiglio (che ribadisco) è "vedi di ottimizzare, raggruppando
le istruzioni simili in una, due, 8000 S/F esterne". Questa da 3000 righe
diventerà più leggibile. In assoluto.

 In teoria potrei essere d'accordo con te, in pratica è pura utopia.
Mah, io sinceramente non ho mai avuto problemi nel rimanere in questo
limite... e con sw *molto* complesso.


 ha scritto

e' stata una delle prime cose che mi hanno colpito nel manuale di vb4 (erano
ancora quei bei manualoni bianchi ms...), e mi sono chiesto come si faceva a
superare quel limite in una sola procedura...
ciao, a.