Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Franco_da_vc

Pagine: 1 ... 12 13 [14] 15
196
Programmazione (Gambas 2) / Re: Dichiarazioni di array globali
« il: 31 Marzo 2012, 12:56:02 »
Grazie per le risposte,

dunque, le dichiarazioni iniziali sono, e si vede nella citazione, all'inizio della main.class, mentre il resto del codice è inserito in un una procedura a se stante e non in un form open, ma questo non penso che possa rappresentare un problema, una diversità che invece può essere sostanziale è la dichiarazione dei puntatori: io infatti li avevo dichiarati integer mentre vedo che sono dichiarati come byte... in totale il mio codice è così:

Codice: gambas [Seleziona]

PUBLIC clienti1$ AS String[] '##### 1° array dati clienti - Nome ditta
PUBLIC clienti2$ AS String[] '##### 2° array dati clienti - Dati ditta


PUBLIC tot_cli AS Integer '##### numero totali di clienti visualizzati

PUBLIC SUB _new()

  assegnazioni()

END

PUBLIC SUB assegnazioni()

  LETTURA_FILE_CLIENTI(tot_cli)

END

PUBLIC PROCEDURE LETTURA_FILE_CLIENTI(num AS Integer)

  DIM clienti1_tmp$ AS String '##### Variabile navetta - Nome ditta
  DIM clienti2_tmp$ AS NEW String[] '##### Array navetta - Dati ditta

  DIM i AS Integer '##### puntatore numero del record
  DIM j AS Integer '##### Puntatore numero del campo
  DIM y AS Integer '##### Puntatore alternativo numero del record
  DIM num_rec AS Integer '##### Numero totale dei record

    clienti1$ = NEW String[num]
    clienti2$ = NEW String[num, 6]
    clienti2_tmp$ = NEW String[6]

    FOR i = 0 TO num_rec - 1


        clienti1$[y] = clienti1_tmp$
        FOR j = 0 TO 5
          clienti2$[y, j] = clienti2_tmp$[j]
        NEXT
        y = y + 1

    NEXT

END


Questo è il codice interessato, non lo trovo tanto distante da quello che avete postato voi, il problema e che persiste il malfunzionamento che vi ho segnalato.

Ciao a tutti.




197
Riposto qui l'evidenziazione dell'ultimo mesaggio del topic "Le costanti queste sconosciute..........." perchè giustamente come mi aveva fattto notare Vuott non centrava col topic e siccome il nuovo argomento non mi pare essere esaurito è meglio che lo continui così.

============================================================


Se invece la dichiarazione la metto nella main procedure otterrò un'array globale che poi ridimensionerò nella procedura a mio piacere......
Funziona?


Fai la prova tu stesso !

"Provar non nuoce !" ...nuoce non provar !

Ho fatto una prova, ma i risultati che ho ottenuto mi stanno un po' inducendo in confusione e quindi preferisco realizzare una discussione con voi.

Alura..... ho dichiarato a livello globale due vettori: clienti1$ e clienti2$ con questa istruzione: PUBLIC clienti1$ AS String[], naturalmente anche per la seconda espressione, poi all'interno della PROCEDURE LETTURA_FILE_CLIENTI ho dimensionato i due array con questa istruzione: clienti1$ = NEW String[num] e la seconda matrice: clienti2$ = NEW String[num, 6].

Nel mio progetto infatti il vettore clienti1$ è monodimensionale mentre clienti2$ è bidimensionale, ora il problema stà proprio in questa diversità: il primo funziona a dovere, mentre il secondo, a quanto pare, no! E se lo interrogo mi restituisce per i primi 5 elementi (num nell'elelaborazione di prova è pari a 5) il messaggio "Bad number of dimension" per i restanti "Out of bounds", quasi come se fosse impossibile dimensionare array pluridimensionali (francamente lo troverei un po strano).

Voi che mi dite?

Grazie.

198
Programmazione (Gambas 2) / [risolto] Re: Manuali per la IDE
« il: 28 Marzo 2012, 22:32:17 »
E' vero! Avete ragione,

L'errore lo compivo io, ma non a livello di uso del debugger, semplicemnte un puerile refuso di programmazione, avevo descritto una routine "assegnazioni()" e poi non la richiamavo da nessuna parte e chiaramente le variabili, quelle che volevo vedere... nisba, è bastato che mettessi un richiamo nella sub "_new()" che tutto ha preso a funzionare, come per incanto, devo dire che ho provato la routine e mi sono veramente divertito a vedere il mutare delle variabili man mano che il programma progrediva, Fantastico!

Grazie a tutti.

199
Programmazione (Gambas 2) / Re: Manuali per la IDE
« il: 27 Marzo 2012, 23:15:36 »
Beh! Si, Stavo cercando di capire come si fa a vedere il valore delle variabili del listato, ho capito che la bandierina rossa serve per introdurre dei punti ove fermare l'esecuzione del codice e gli occhiali dovrebbero servire per vedere qualcosa, penso... le variabili, ma come?

200
Programmazione (Gambas 2) / [Risolto] Manuali per la IDE
« il: 25 Marzo 2012, 22:47:45 »
Ciao a tutti,

mi potete suggerire dove trovare un manuale che spieghi il funzionamento dell'IDE del nostro gamberetto? Vorrei sfruttare meglio l'ambiente, ma nell'Help in linea non trovo notizie.

Grazie!

201

il problema è proprio quello , dim si utlizza solo all' inizio della procedura quindi all' inizio:

dim clienti1$ AS NEW String[]

e poi dove l' avevi scritto prima puoi provare a mettere:

clienti1$=new string[num - 1, 34]


Se invece la dichiarazione la metto nella main procedure otterrò un'array globale che poi ridimensionerò nella procedura a mio piacere......
Funziona?

Grazie!

202
Ciao a tutti,

per Vuott, in effetti hai proprio ragione, ma ora ho già ricevuto una seconda risposta oltra alla tua, come si Può fare? Se i moderatori mi indicano lo farò volentieri!

Dunque se ho capito bene, devo dichiarare gli array ad inizio procedura e in un secondo tempo dimensionerò la struttura secondo i parametri ottenuti.

Grazie!

203
Riprendiamo la saga della dichiarazione, beh, questa volta non si tratta di dichiarare delle costanti, ma degli array.

Le dichiarazioni avvengono all'interno di una procedura di lettura di un file e sono state scritte in questo modo:

DIM clienti1$ AS NEW String[num - 1, 34]

La scrittura mi pare giusta, però mi da un errore del tipo Unexpettid dim in.... ora il mio interrogativo stà nel fatto che questa dichiarazione l'ho inserita nel corso della procedura e non all'inizio, non penso che ciò possa influenzare, poi mi servono in quel posto perché soli lì e non all'inizio il programma viene a conoscere dei dati necessari alle dichiarazioni stesse.

Che ne dite?

Grazie a tutti e buona domenica!

204
E' vero, questa soluzione è veramente sbrigativa e veloce, ma al contempo molto elegante.

Grazie!

205
Ciao a tutti,

ho iniziato a scrivere un po' di codice del mio programma e devo dire che il gamberetto mi piace veramente, inizio a ritrovare il divertimento che provavo scrivendo nel precedente "SuperBasic", ora però mi sono incagliato  :hard: in un problema che non ha trovato ancora risoluzione:

Il mio programma parte in un form, alla pressione di un tasto deve comparire un secondo form di conferma del tipo "Confermi la scelta? Si NO", in un primo tempo ho realizzato un apposita classe con un form associato, il problema era che non sapevo come ritornare alla procedura chiamante il valore di uscita vero o falso.

Ho poi provato vedendo sulla "Guida per principianti Gambas" che si può istituire dei subform ed ho provato a seguire questa strada, ma francamente o io non ho ancora capito bene o il manuale è un pò scarno, il fatto è che questa seconda strada mi sembra meno percorribile della prima.

Non c'è del codice di esempio per una struttura simile a cui io possa ispirarmi?

Saluti a tutti e grazie!

206
In effetti il problema è veramente corposo, in quelle dichiarazione io vado a definire una serie di caratteri di escape per una stampante Epson e quindi ci si viene a trovare di fronte a stringhe del genere:

  PUBLIC _line AS String = Chr$(27) & Chr$(65) & Chr$(9) '##### imposta altezza riga - 1° misura

Per ora l'ambaradam funziona, voglio però dare un'occhiata ad una tabella dei caratteri ascii per vedere se riesco a riportare il tutto a livello di dichiarazione di costante.

Saluti.

207
In effetti avevo un pelino equivocato e ho provveduto ad eliminare la "PUBLIC SUB Inizializza()" e tutto ha preso funzionare.

Ciò che mi dà ancora problemi è la dichiarazione "Const _cond As String = Chr$(15)" ora anche questa viene accetta, ma ottengo comunque una segnalazione di errore: Sintax error, quindi i dubbi sull'assegnazione della Chr$(15) alla costante erano più fondati di quel che pensavo visto che sostituendolo con una stringa qualsiasi l'espressione viene passata.

Per quanto riguarda le variabili x_prim e y_prim la nota 'forse va eliminata si riferisce alle variabili stesse perché penso che con gambas non ne avrò proprio bisogno; i brandelli di codice che ho inserito derivano da un precedente programma scritto in SuperBasic e quelle due variabili mi servivano per crearmi un riferimento relativo per i form che via via caricavo.

Ciao!

208
Linux / Re: Primo saluto da franco
« il: 25 Febbraio 2012, 16:31:12 »
Franchi si, ma no tiratori, approposito ho visto che l'avatar di Golia è un famoso personaggio di "lupen III", uno dei cartoni che io prediligevo!

Saluti a tutti!

209
Grazie vuott,

che la costante sia solo globale era un dettaglio che non stavo considerando, ma nel caso che ho riportato qual'era l'errore? Ho visto che nel tuo esempio inserivi nella costante la stringa "2 + 1 = ", mentre io avevo assegnato Chr$(15), a prima vista mi pare che l'espressione sia valida perchè Chr$(15)  è un carattere e quindi dovrei aver assegnato comunque una stringa, il mio problema non è nell'utilizzo, ma nell'assegnazione stessa che non mi viene accettata.

Per quanto riguarda il discorso delle variabili il discorso è abbastanza analogo, cio che non mi viene accettata è la dichiarazione mi viene accetta la sola dichiarazione con DIM ed un'espressione come quella che mi hai scritto te Public y_glob AS Integer mi ha dato errore, il mio pensiero è che a fare problemi sia la posizione in cui sto facendo il tutto dia problemi..... ti riporto un breve listato in modo che tu possa vedere:


' Gambas class file

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

  FMain.hide

END

PUBLIC SUB Inizializza()

'##### dichiarazioni array #####

DIM mese AS NEW String[11]

'##### dichiarazioni degli switch di segnalazione #####

DIM sw_prova AS Boolean '##### abilita o disabilita la modalità di prova   #####
PUBLIC sw_ins AS Integer '##### segnale scelta INSERIMENTO             #####
DIM sw_stm AS Integer '##### segnale scelta STAMPA                         #####

'##### dichiarazioni variabili #####

DIM x_prim AS Integer  '##### posizione X relativa del form                ##### forse va eliminata
DIM y_prim AS Integer  '##### posizione Y relativa del form                ##### forse va eliminata

DIM _base AS String    '##### definisce la directori di base del programma #####
CONST _cond AS String  = Chr$(15)  '##### inserisce la scrittura in condensato         #####
DIM shift AS Integer   '##### alineamento bolla                            #####

DIM modello AS Integer '##### tipo di modello usato                        #####

sw_prova = FALSE '##### valore = true  ==> directory di prova  #####
                 '##### valore = false ==> directory di lavoro #####

x_prim = 0 'forse va eliminata
y_prim = 0 'forse va eliminata

IF sw_prova THEN
  _base = "win1_elab_fatt_prove_" 'rivedere l'assegnazione della directory di prova
ELSE
  _base = "win1_elab_fatt_data_" 'rivedere l'assegnazione della directori dei dati
END IF

shift = 2

modello = 1 '##### 0 === > mod. senza fincatura in header #####
            '##### 1 === > mod. con fincatura in header   #####

mese[0] = "Gen"
mese[1] = "Feb"
mese[2] = "Mar"
mese[3] = "Apr"
mese[4] = "Mag"
mese[5] = "Giu"
mese[6] = "Lug"
mese[7] = "Ago"
mese[8] = "Set"
mese[9] = "Ott"
mese[10] = "Nov"
mese[11] = "Dic"

END

PUBLIC SUB ButtonIns_Click()

.
.
.

END

PUBLIC SUB ButtonStop_Click()

  FMain.Close

END

PUBLIC SUB ListBox1_Click()

.
.
.

END


Le due espressioni  PUBLIC e CONST non mi vengono accettate, il resto si, come mai?

210
Beh, dopo i convenevoli ora inizio a fare domande inerenti alla programmazione.

La prima: apprezzo il discorso della dichiarazione delle variabili (ero tra quelli che nel basic aveva sempre contestato la mancanza di tale struttura), ho già scritto alcune righe di dichiarazioni ma solo nella forma:

DIM x_prim AS Integer

Ho tentato di inserire il comando Public ottenendo però errore, siccome la scrittura è stata fatta in Fmain.class presumo che li non si debba inserire tale comando perchè è la classe principale, ho provato anche con l'espressione Private, ma anche li il risultato è stato un errore come mai?

La seconda: ho trovato ed anche molto aprezzato la possibilità di inserire delle dichiarazione di constanti, purtroppo anche qua al momento di applicare il tutto ottengo il messaggio di errore: Unespected CONST alla linea 35 in Famin.class e l'espressione proposta è la seguente:

CONST _cond AS String = Chr$(15)   '##### inserisce la scrittura in condensato         #####

Dov'è che sbaglo?

Saluto tutti e ringrazio

Pagine: 1 ... 12 13 [14] 15