Autore Topic: [RISOLTO]Array e Matrici Globali  (Letto 2539 volte)

Offline carletto66

  • Gamberetto
  • *
  • Post: 23
    • Mostra profilo
[RISOLTO]Array e Matrici Globali
« il: 15 Agosto 2009, 16:17:19 »
salve,

ho un altro problemino che mi assilla. Devo poter dichiarare una matrice di [n, m] elementi che deve essere utilizzata per elaborazioni da tutti i form del mio programma ma, se la dichiaro come PUBLIC nel FMain mi si presenta l'errore "L'array dichiarato non è permesso qua".

Il problema è che se la dichiaro come STATIC non è accessibile dagli altri form e allora che fare?

Grazie per l'aiuto e buon Ferragosto a Tutti!

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: Array e Matrici Globali
« Risposta #1 il: 15 Agosto 2009, 19:48:27 »
Ciao, ho dichiarato l'array nel campo delle dichiarazioni del form principale e non mi ha dato nessun errore
Codice: [Seleziona]
' Gambas class file
 Public xarray As New String[5, 6]

Forse sbagli posto dove dichiararlo. Ciao.

Offline carletto66

  • Gamberetto
  • *
  • Post: 23
    • Mostra profilo
Re: Array e Matrici Globali
« Risposta #2 il: 16 Agosto 2009, 13:30:45 »
ciao, adesso funziona.....scartabellando nel manuale in inglese (una faticaccia!) ho risolto utilizzando la dichiarazione Public mioarray As New String[100, 6].

Il mio errore infatti era di dichiarare come PUBLIC mioarray[100, 6] AS STRING.

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #3 il: 09 Dicembre 2011, 16:58:52 »
Eccomi!
Allora, io non riesco a usare un array multidimensionale:

Citazione
PUBLIC DatabaseStazioni As New String[20,20]


Public sub GenerateDatabase()
   DatabaseStazioni[1,1] = "gigi"

Mi mette "Bad number of dimensions"
Dove sbaglio?

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #4 il: 09 Dicembre 2011, 18:02:38 »
io invece di usar eun array multidimensionale utilizzerei una classe

percui avresti un array di oggetti(la classe) con le varie proprietà

è molto più comodo da gestire e utilizzare.

comunque il codice che hai scritto è corretto.

tieni conto che gli indici iniziano da 0 percui nel caso di New String[20,20]

il primo campo è [0,0]

l' ultimo + [19,19]

ps che versione di gambas usi? io ho provato sulla 2.22

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #5 il: 09 Dicembre 2011, 18:43:05 »
Guarda, io sono alle prime armi; prima di smanettare con cose (classi) che non conosco preferirei vedere se quel poco che so funziona......

Comunque, io ho un 2.21

Ma io devo necessariamente cominciare dall'indice 0,0 per riempire un array?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: [RISOLTO]Array e Matrici Globali
« Risposta #6 il: 09 Dicembre 2011, 18:47:38 »
Ma io devo necessariamente cominciare dall'indice 0,0 per riempire un array?

Si...poi tutta la gestione la adegui di conseguenza. In ogni linguaggio di programmazione, in modo basilare, trovi sempre questa situazione.

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #7 il: 16 Dicembre 2011, 11:57:38 »
Codice: [Seleziona]
' Gambas class file
AckToClient AS Byte[10] ' buffer di risposta al client
PUBLIC DatabaseStazioni AS NEW String[20, 20] 'MaxStations, MaxDatabaseHeaders]
PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
 DIM directoryName AS String
  DIM tir AS Integer[7, 5]
  DIM iK[9] AS Integer ' ik[0] to ik[8]


  tir[0, 0] = 7
  iK[0] = 7
  DatabaseStazioni[0, 0] = "titti"

END

Allora, nel debug mi salta fuori:
Citazione
tir (Integer[]) = "Bad number of dimensions" da 0 a 6, "Out of bounds" da 7 in poi
iK mi compare l'errore "Type mismatch: wanted Variant, got array instead"

Mi sa che quasi quasi torno a Windows.....  :)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #8 il: 16 Dicembre 2011, 12:12:04 »
il continuo a non capire perchè ti ostini ad usare una matrice, quando hai a disposizione strumenti molto piu efficaci e comodi, partendo dall' uso di due semplici array , oppure una collection oppure una classe.
Credo che quasi mai nessuno abbia usato una matrice che è probabilmente un sistema valido in altri linguaggi ma a mio parere non in gambas

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #9 il: 16 Dicembre 2011, 15:32:35 »
Ok, allora potresti indicarmi dove trovare degli esempi di matrici fatti con le classi?

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #10 il: 16 Dicembre 2011, 17:04:21 »
tu  spiega cosa volevi fare con la matrice e vediamo di trovare una soluzione
« Ultima modifica: 16 Dicembre 2011, 17:06:39 da fsurfing »

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #11 il: 16 Dicembre 2011, 17:26:01 »
Allora, io ho una serie di cartelle all'interno di una directory (x. es. "Stazione_01", "Stazione_02", e così via), per un massimo di 40 stazioni; ogni directory contiene diversi files di configurazione (x. es. "IP.cfg", "DNS.cfg", ID.cfg", e così via), per un massimo di circa 20 files (abbondo).
Quindi lo facevo con un array di "objects" di dimensioni 40x20, i cui elementi erano di tipo "string", "integer", "IP", etc. etc.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #12 il: 16 Dicembre 2011, 17:54:28 »
ma i file di configurazione li hai creati tu? a occhio direi di si, quindi per ogni proprietà della stazione nel file di configurazione hai un solo valore .

sappi che per salvare i dati delle stazione hai a disposizione strumenti migliori id questo sistema, prima di tutti un semplice database o in alternativa potresti usare settings che si occupa appunto di creare file di configurazione , in questo modo potresti salvare i dati di tutte le stazioni in un unico file.

comunque rimanendo al tuo sistema:

qui ti ho fatto un esempio semplicistico

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #13 il: 17 Dicembre 2011, 16:15:23 »
Ok, grazie, intanto cerco di studiarmelo u npo'..... :D

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [RISOLTO]Array e Matrici Globali
« Risposta #14 il: 17 Gennaio 2012, 11:36:39 »
Mi sono accorto oggi di una cosa: se creo questa classe (l'avevo fatta per prova)

TelemetryData class
Codice: [Seleziona]
PUBLIC Id As Byte
PUBLIC StatusReg As Short

Poi la utilizzo in questo modo all'interno di una SUB:
Codice: [Seleziona]
DIM MioDato As TelemetryData
MioDato = New TelemetryData

Solo che così non è una variabile globale, non me la vede se chiamo un'altra sub; come posso risolvere?
Ho provato a dichiararla coma variabile globale, ma non funziona....