Tu stai parlando di un vettore.
Come più volte detto Gambas non è VB, quindi non possiamo pretendere che funzioni allo stesso modo.
Studiati i vettori che in Gambas sono degli oggetti e vanno istanziati prima di poter essere usati.
esempio:
Dim larghezzaanta as New Integer[]
larghezzaanta.Push(560)
Print larghezzaanta[0]
Vedi: https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Array_.28Vettori.29_e_Matrici
Al momento ho creato una variabile pubblica vettore Public largoanta as New variant[25]
e lo impostata a 25 perche devo ancora capire come renderla dinamica.
Poi nella Public sub_ memorizza() ho inserito la riga largoanta[contatore] = larghezzaanta
Facendo poi piu misurazioni e dando un for i = 1 to contatore
Print largoanta[i]
next
riesco a vedere correttamente le varie misurazioni incamerate dal vettore
Per il discorso che gli Array partono da zero, non è possibile impostare Option Base 1 ?
In Gambas non esiste Option Base 1.
"largoanta" è Public per essere vista sia nella sub memorizza che poi nella sub stampa o visualizza.
Che largoanta deve essere vista da altre sub è chiaro, ma se le sub sono nella stessa classe (o modulo) non serve Public basta Private.
Variant perché alcuni dati li raccolgo da textbox e per evitare conflitti preferisco variant.
È sempre un rischio trattare il tipo variant perchè può introdurre dei bug difficili da scovare, del tipo:
"Ottengo un risultato apparentemente corretto ma in realtà sbagliato".
Ti conviene sempre trattare con dati specifici ad esempio usando misure in millimetri conviene adottare Integer come tipo di dato.
Quando si ricevono dati numerici da delle textbox si opera una conversione del tipo, così:
mioInteger = Cint(TextBox1.Text).
Così saremo sempre tranquilli dei nostri calcoli.
Io capisco che tu ti voglia limitare a convertire un programma (funzionante) in Gambas, ma se mentre lo fai lo puoi migliorare imparando qualcosa di nuovo, non è più corretto fare così?
Se vuoi puoi fare anche a meno della variabile contatore, per scansionare un array senza sapere di quanti elementi è composto puoi fare così:
For i = 0 to largoanta.Max
print largoanta[i]
Next
Max in un array restituisce l'indice dell'elemento più alto.
E pensare magari di scrivere una classe/i con tutte le caratteristiche che deve avere un serramento per poi creare degli oggetti su cui lavorare?
Renderebbe tutto più semplice.
Ciao raga
mi serve un mano che mi sono incartato
devo creare delle Collection da programma in esecuzione e non da codice, in qiuanto non so a priori ne il nome ne la quantita delle collection
da una query del database mi arriva un certo numero di record, per ogni record mi serve una collection, per esempio, query 30 record, mi servono 30 collection tipo:
record 1 codice cliente SF241
Dim SF241 As Collection = ["nome": "Antonio", "cognome": "Norcino", ecc...]
record 2 codice cliente SF278
Dim SF278 As Collection = ["nome": "Pinto", "cognome": "Pallino", ecc...]
e cosi via per 30 collection
mi serve sapere solo come crearle al volo, poi con un ciclo le faccio caricare i dati