Discussione chiusa
Visualizzazione dei risultati da 1 a 8 su 8

Dichiarazione di un array: Perché non funziona?

  1. #1
    Oetzi6972 non è in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve. Premetto che NON sono un programmatore professionista, ma solo per diletto.
    Mi trovo in difficoltà nel definire un semplice array. Per qualche motivo che mi sfugge, non riesco a far accettare la dichiarazione di un array nella sezione iniziale: in fase di compilazione, salta fuori sempre e comunque l'errore "Invalid outside procedure".
    Si tratta di un array molto semplice, costituito da quattro elementi tipo stringa. Per sicurezza, ho copiato pari pari il codice trovato sul testo di Balena (I trucchi di Visual Basic 6, pag.63):

    Dim varArray() As Variant
    varArray() = Array("Spring", "Summer", "Fall", "Winter")

    Ho provato tutte le varianti possibili: dichiarando come Stringa, inserendo la dimensione nelle parentesi [(3) o (0 To 3)], ma non c'è stato niente da fare: ogni volta che vado in compilazione, si blocca sul primo elemento e salta fuori l'errore "Invalid Outside Procedure" ...
    Che cosa vuol dire? Che cosa manca? Che cosa mi sfugge?
    Grazie a chiunque vorrà aiutarmi.
    Ultima modifica di AntonioG; 10-08-2020 22:05 

  2. #2
    Ferrari_and non è in linea Scolaretto
    Post
    312
    Like Inviati  
    2
    Like Ricevuti  
    3
    Le 2 righe di codice funzionano benissimo sei sicuro che il problema non sia altrove?

  3. #3
    Oetzi6972 non è in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ovviamente sono sicuro che il problema sia altrove ... Il problema è che non so dove sbattere la testa per trovarlo ...

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Post
    3,135
    Like Inviati  
    5
    Like Ricevuti  
    5
    Quote Originariamente inviato da Oetzi6972 Visualizza il messaggio
    "Invalid Outside Procedure" ...
    Che cosa vuol dire?
    Vuol dire che la seconda riga di codice che hai scritto "non è valida al di fuori di una procedura", cioè la puoi scrivere solo dopo una istruzione Sub o Function, mentre probabilmente tu l'hai piazzata in testa al codice, prima di ogni sub o function.
    ℹ️ Leggi di più su Brontolo ...

  5. #5
    Oetzi6972 non è in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Vuol dire che la seconda riga di codice che hai scritto "non è valida al di fuori di una procedura", cioè la puoi scrivere solo dopo una istruzione Sub o Function, mentre probabilmente tu l'hai piazzata in testa al codice, prima di ogni sub o function.
    Grazie Brontolo! Conciso, preciso ed efficace !
    In effetti è proprio così: entrambe le righe erano nella sezione dichiarazioni. Ho spostato la seconda nella Sub Form_Load, e così facendo è andato tutto a posto Grazie ancora, ho imparato una cosa nuova!

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,503
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    35
    Veramente ti era stato detto in un altro forum.

    https://www.iprogrammatori.it/forum-...na-t44246.html

    https://www.iprogrammatori.it/forum-...ay-t44245.html

    Qui il crossposting è vietato
    Ultima modifica di AntonioG; 10-08-2020 22:14 
    ℹ️ Leggi di più su AntonioG ...

  7. #7
    Oetzi6972 non è in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Allora ... Se mi consenti, qui non si tratta di crossposting (anche se non so bene che cosa sia ... ma deve essere una brutta cosa, visto che è vietato ...). Si tratta semplicemente del fatto che nell'altro forum sono stato trattato prima da analfabeta (non avrei saputo distinguere se stavo usando VB6 o VB.Net ...!), e poi con una notevole spocchia mi è stata negata una risposta comprensibile a due quesiti, il primo riguardante una matrice tridimensionale e il secondo, più semplicemente, un vettore, anche se il problema complessivo dipendeva dalla definizione di quest'ultimo.
    Il mio interlocutore insisteva a chiedere "esempi" di qualcosa per cui non potevo dargli esempi, dato che non avevo scritto una sola riga di codice per questa sezione del programma, ignorando il fatto che gli avevo dato tutte le spiegazioni che potevo dargli su quanto intendevo fare. Alla fine, come gli ho anche detto chiaramente, mi sono arreso e ho abbandonato la discussione.
    Sulla seconda domanda (che poi è quella che ho postato qui), oltre a polemizzare sul fatto che non avrei dovuto aprire un altro thread ma proseguire sul precedente (mentre per me erano due questioni distinte), ha insistito a darmi spiegazioni criptiche e confuse, ripetendo le stesse cose che non riuscivo a capire. Come ho detto, non sono un programmatore professionale, e quindi alcune cose che per voi possono essere comprensibili al volo per me non lo sono.
    Sta di fatto che alla fine ho avuto la netta sensazione che non volesse rispondermi per punto preso, per cui ho deciso di cambiare interlocutore. Non trovo nulla di sconveniente in questo, dato che, per andare avanti nel programma, mi serviva una informazione che là non riuscivo ad ottenere.
    In questo forum ho posto la stessa questione (quella più semplice), e ho avuto la bella sorpresa di trovare una persona gentilissima e competente che ha capito subito il mio problema ed è riuscito a spiegarmi, in meno di due righe, senza polemiche inutili e richieste pretestuose, quale fosse e come venirne fuori. Dalla sua spiegazione, semplice e lineare, ho potuto capire quale fosse il mio errore, come risolvere la situazione in un attimo, e anche come risolvere di conseguenza l'altra questione. Di questo gli sono infinitamente grato.
    Non vedo cosa ci sia di male in questo. Se ho bisogno di un'informazione e non riesco ad ottenerla in un posto, o mi imbatto in qualcuno che non è capace di darmela senza montare polemiche, non posso rivolgermi a qualcun altro? Devo morire senza ottenere una risposta? Devo buttare a mare tutto il lavoro già fatto perché non sono in grado di superare l'ultimo ostacolo? Ho passato giorni e notti insonni per scrivere questo programma (per me molto importante) fino a questo punto: devo lasciar perdere tutto perché non riesco a fare l'ultimo passo? Non ci penso proprio.
    Quindi ribadisco i miei ringraziamenti a chi è stato in grado di darmi una mano in questo forum e a farmi imparare qualcosa per me nuovo (non avevo mai avuto a che fare con gli array), e se avrò ancora necessità di questo tipo spero non vi dispiaccia se mi rivolgerò ancora a voi; di certo NON all'altro forum.
    Cordiali saluti.
    Ultima modifica di Oetzi6972; 11-08-2020 02:16  Motivo: Maggiore chiarezza

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,503
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    35
    Il crossposting esiste perché le discussioni erano tutte aperte (e attive con risposte anche successive) e non lo hai neanche accennato (come indica il nostro Regolamento che avrai letto). E qui è vietato.
    Del resto non puoi affermare che non si tratti di crossposting e contemporaneamente dire di non sapere esattamente cosa sia.

    In ogni caso la risposta l'hai avuta anche lì infatti hai parlato tu di Form_Load che ti è stata suggerita lì.
    Ho letto che ti è stato suggerito di scrivere il codice in una Sub e tu hai detto che non capivi cosa significasse scrivere in una Sub (e usi vb6 da anni...). E hai anche avuto del codice di esempio completo.

    I due thread erano sullo stesso errore.

    Tutta la polemica sull'essere laureato o no l'ho saltata.

    Comunque questo thread è concluso.
    Ultima modifica di AntonioG; 12-08-2020 09:16 
    ℹ️ Leggi di più su AntonioG ...

Discussione chiusa

Potrebbero interessarti anche ...

  1. Autoadattamento image non funziona in array
    Da tizike nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 16-04-2014, 10:38
  2. Cancellazione record - Perche' non funziona???
    Da M.Z. nel forum Microsoft Access
    Risposte: 11
    Ultimo Post: 15-05-2012, 11:47
  3. non mi funziona questo codice perchè?
    Da trump61 nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 15-11-2009, 19:14
  4. Dichiarazione If
    Da Kevin nel forum PHP
    Risposte: 4
    Ultimo Post: 02-03-2008, 17:45
  5. Dichiarazione variabili
    Da jackmoros nel forum Visual Basic 6
    Risposte: 11
    Ultimo Post: 06-07-2007, 02:56