Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: Gianluigi - 26 Ottobre 2014, 23:06:37

Titolo: Dati aggregati
Inserito da: Gianluigi - 26 Ottobre 2014, 23:06:37
Ciao a tutti,
mi sto picchiando con dei concetti che nella mia precedente vita di piccolo programmatore VBA non avevo mai affrontato.
Io inizialmente d'acchito avevo archiviato nel mio cervelletto le strutture sotto la voce UDT vale a dire il tipo definito dall'utente; ma è poi veramente così?
Dico archiviate perché dato i limiti del mio comprendonio già all'epoca le avevo escluse dai miei programmi che essendo principalmente utility fatte in Excel o aggiunte in Acces avevo pensato ne potessero tranquillamente (?) fare a meno.
Vedo che in Gambas ci sono diversi tipi di dati aggregati:
Le già citate Strutture
Gli Array
Le Collezioni
Cosa mi dimentico? Gli Oggetti? Ma su quelli soprassiederei. Altro?
Ora dirò la mia idiozia della sera: Io non capisco proprio perché se esistono i database di qualunque tipo, anche leggerissimi come SQLite, occorra ricorrere ad altre forme di aggregazione.
Vedo che addirittura Gambas supporta i puntatori che sebbene io fondamentalmente non comprenda tuttavia so o credo di sapere che servono per manipolare i dati memorizzati attraverso gli indirizzi di memoria e quindi rimaniamo sempre nel campo.
Li fuori c'è qualche anima pia che mi vuole schiarire le idee?
Grazie dell'attenzione
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: vuott - 29 Ottobre 2014, 00:43:22
Vedo che addirittura Gambas supporta i puntatori che sebbene io fondamentalmente non comprenda tuttavia so o credo di sapere che servono per manipolare i dati memorizzati attraverso gli indirizzi di memoria e quindi rimaniamo sempre nel campo.

Un esempio di uso pratico dei Puntatori in Gambas:
http://www.gambas-it.org/smf/index.php?topic=3762.msg34306
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 29 Ottobre 2014, 12:20:31
Un esempio di uso pratico dei Puntatori in Gambas:
http://www.gambas-it.org/smf/index.php?topic=3762.msg34306

Grazie, scaricato.
Ora vado a studiare
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: vuott - 29 Ottobre 2014, 12:23:30
In vero, va ricordato che i Puntatori in Gambas sono utilizzati in modo particolare laddove richiesto dalla gestione con Extern delle funzioni di librerie esterne.
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 29 Ottobre 2014, 18:12:51
In vero, va ricordato che i Puntatori in Gambas sono utilizzati in modo particolare laddove richiesto dalla gestione con Extern delle funzioni di librerie esterne.

Accidenti e pensare che di Extern & C avevo già letto le tue lezioni; è che mi è bastato fare una breve pausa di 100 giorni e il mio cervello ha già fatto reset.
Poi comunque ho commesso l'errore di cercare solo (!?) nelle discussioni che se le fai troppo particolari rischi di non ottenere nulla e al contrario ottieni “troppo”.
Andando a cercare nel wiki ho ripescato anche altre lezioni per usare i Memory Stream per leggere e scrivere nelle strutture coi puntatori ecc.
E il bello che ho appena letto la tua ultima lezione sempre sui Memory Stream!
Vediamo se per caso ho compreso qualcosa in più su concetti che continuano a rimanermi a dir poco indigesti.
Gambas per ampliare le proprie possibilità supporta i Puntatori che permettono ai programmatori di accedere alle librerie esterne scritte in C (C++?)e poterne usare le funzioni.
Ora, nella giusta filosofia hacker tali puntatori vengono usati per scrivere e leggere in altre “funzioni” di Gambas aventi comunque loro precipue modalità?
Se così fosse ho qualcosa in meno da capire con urgenza. Perdonami ma per me lo studio del C per adesso è rimandato almeno di un paio d'anni e vista l'età...
Oppure trattasi diciamo così di “normale utilizzo” cosa che mi lascerebbe attonito e affranto?
Grazie
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: vuott - 29 Ottobre 2014, 20:57:45
Ora, nella giusta filosofia hacker tali puntatori vengono usati per scrivere e leggere in altre “funzioni” di Gambas aventi comunque loro precipue modalità?

Per quel che riguarda il C l'uso dei Puntatori nei codici, scritti in questo linguaggio, è estremamente frequente. A volte vi sono funzioni che richiedono, come parametri, proprio dei Puntatori; e moltre volte ritornano un Puntatore.
...ma come si fa a leggere o a scrivere in un'area riservata, puntata da una variabile di tipo Puntatore ?  Gambas usa uno stratagemma, rappresentato dai "Memory Stream".
Ad esempio per scrivere in un Puntatore (rectius: all'interno di un'area puntata da un Puntatore), dopo aver generato una variabile di tipo Stream dal Puntatore, si utilizza questa variabile per scriverci dentro. Fatto ciò, però, alla funzione esterna, che pretende che sia passato come argomento un Puntatore, si passerà la varibile di tipo Puntatore e non la variabile Stream (da essa generata e da noi utilizzata per scrivere nell'area riservata di memoria).

Insomma, va tenuto a mente che sostanzialmente il Puntatore punta ad un'area riservata di memoria, nella quale - con Gambas - è possibile leggere o scrivere mediante i Memory Stream.
Un'area riservata di memoria può essere definita con la funzione: alloc(), e vi si potrà - ad esempio - scrivere secondo questa procedura astratta:
Codice: gambas [Seleziona]
Public Sub Main()

  Dim p As Pointer
  Dim st As Stream

' Riserviamo un'area di memoria di 64 byte, il cui indirizzo è puntato dalla variabile "p":
   p = Alloc(64)

' Generiamo dalla variabile "Puntatore" una variabile di tipo "Stream", ad esempio per scrivere nell'area riservata:
   st = Memory p For Write

' Scriviamo dunque dentro l'area riservata di memoria, come se agissimo in un File:
   Write #st, "Gambas\x0AGambas"

' Chiudiamo il flusso:
   st.Close

' Qui, ad esempio, passiamo il puntatore alla funzione esterna che richiede come argomento un Puntatore
' ad un'area di memoria riservata, nella quale sia stata scritta la stringa di cui sopra:
   Funzione_Esterna(p)

' Poiché abbiamo allocato 64 byte di memoria, ora, che non serve più, la liberiamo:
   Free(p)

End



Per generare, invece, un Puntatore da un altro tipo di variabile (quindi per creare un Puntatore che punta all'indirizzo di memoria di una variabile), si fa uso della funzione: VarPtr() .



Più in generale i Puntatori ci consentono, anche in Gambas, di operare all'interno di un'area di memoria, allocata da noi oppure allocata da un'altra risorsa. Vediamo al riguardo questo semplice esempio.
Leggiamo e cambiamo un carattere di una stringa contenuta in una variabile di tipo Stringa:
Codice: gambas [Seleziona]
Public Sub Main()

  Dim p As Pointer
  Dim st As Stream
  Dim s As String
  Dim j, b As Byte


 ' Assegnamo del testo alla variabile di tipo "String":
   s = "gambas"

' Assegnamo l'indirizzo di memoria della variabile "s" ad una variabile di tipo Puntatore:
   p = VarPtr(s)

' Generiamo dalla variabile "Puntatore" una variabile di tipo "Stream" in lettura ed in scrittura:
   st = Memory p For Read Write

' Andiamo a vedere mediante la variabile di tipo "Stream" i valori presenti all'interno
' dell'area di memoria della variabile "s", puntata dal puntatore:
   For j = 0 To String.Len(s) - 1
     Read #st, b
     Print Hex(b), b, Chr(b)
   Next

' Scriviamo ora un valore (ad esempio il carattere di "fine riga a capo") nel quarto byte
' (di indice 3) dell'area di memoria puntata dalla variabile "s", a sua volta puntata dal puntatore:
   Seek #st, 3
   Write #st, &0A As Byte

' Chiudiamo il flusso:
   st.Close

' ...vediamo direttamente dalla variabile stringa "s" la modifica apportata:
   Print s

End
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 30 Ottobre 2014, 20:36:12

Ciao vuott,
scusa per il ritardo nel rispondere alla tua interessantissima lezione, purtroppo ho avuto da fare ed è da non molto che mi sono messo a studiarla.
Vediamo quindi se ho capito, ma ho forti dubbi:
Il puntatore nasce principalmente per permetterci di usare librerie pronte scritte in C.
Visto che ci sono i puntatori coloro i quali conoscendo il C e sanno come usarli ne approfittano per il codice “interno”.
Anche chi non conosce il C può usufruirne all'interno come mi hai fatto vedere nella seconda dimostrazione pratica.
Mi stavo chiedendo se quando noi passiamo i valori a una funzione, che se non sbaglio in Gambas vengono passati per valore, in realtà Gambas non usi un puntatore. Se fosse vero Gambas ci fa usare i puntatori ma ce lo nasconde e invece se li passiamo per riferimento?
Io comunque ho difficoltà ad immaginarmeli in quanto essi se capisco bene sono al contempo “indirizzo” e “contenitore”.
Se una variabile diciamo così normale la possiamo paragonare ad una scatola (di varie misure in base al tipo) con un'etichetta di indirizzo, il puntatore cosa è? E' un locomotore (indirizzo) che si può trascinare dei vagoni che all'occorrenza riempe?

Per meglio comprendere il tuo esempio (il secondo) ho provato a riprodurlo in codice “normale” ma ottengo un errore puoi per favore dirmi dove sbaglio?
Codice: gambas [Seleziona]

     Dim c, s As String 
     Dim j, b As Byte       
   
      s = "gambas"       
   
      For j = 1 To String.Len(s)
        c = Mid$(s, j, 1)
        'b = CByte(c)  ' Type mismatch: wanted Byte, got String instead
        'Print Hex(b), b, c           
      Next 
      c = Mid$(s, 4, 1)
      s = Replace$(s, c, Chr$(10))   
      Print s 

Parliamoci chiaro mi rendo conto di approfittare molto delle tue abilità e se non rispondi ti capisco benissimo.
Se però mi rispondi sappi che io apprezzo molto.
Ciao e scusa anche la mia testa dura.
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: Top Fuel - 30 Ottobre 2014, 23:01:18
Ti da errore perchè tenti di tirare fuori un valore Byte da una stringa. Usando Asc al posto di CByte non mi da più errore, però non mi visualizza nulla lo stesso nella console, e questo non lo so nemmeno io il perchè... :-\
Titolo: Re: Dati aggregati
Inserito da: vuott - 31 Ottobre 2014, 01:25:47
...essi se capisco bene sono al contempo “indirizzo” e “contenitore”.
Se una variabile diciamo così normale la possiamo paragonare ad una scatola (di varie misure in base al tipo) con un'etichetta di indirizzo, il puntatore cosa è? E' un locomotore (indirizzo) che si può trascinare dei vagoni che all'occorrenza riempe?
......restando alla tua similitudine, poniamo il caso che la scatola della variabile "normale" è posta sul terzo ripiano di una credenza alla 4a posizione fra le altre scatole di quel ripiano. Ebbene,  il Puntatore, è una scatola nella quale c'è un foglietto sul quale c'è scritto: "Se prendi la scatola posta sul terzo ripiano alla 4a posizione  fra le altre scatole di quel ripiano, al suo interno troverai un valore.". Oppure, se vuoi, possiamo dire che Genova è la variabile "normale" che contiene persone e palazzi ed il porto. Il Puntatore è il cartello stradale che indica la strada
 < km 100 Genova]
...o meglio una mappa che indica le coordinate geografiche del centro della città.



ottengo un errore puoi per favore dirmi dove sbaglio?
Ti ha risposto bene l'amico TopFuel: la funzione Mid() ti restituisce semplicemente un carattere. Per gestire questo carattere con la funzione CByte(), devi convertirlo mediante la funzione Asc() nel corrispondente valore numerico ASCII.
Insomma così:
Codice: gambas [Seleziona]
...... 
  c = Mid$(s, j, 1)
  b = CByte(Asc(c))
......
Titolo: Re: Dati aggregati
Inserito da: vuott - 31 Ottobre 2014, 01:38:44
Ancora sull'uso della risorsa Memory Stream con i Puntatori.
Se ci si riflette bene, con tale risorsa è possibile scrivere una procedura per crearsi un tipo di variabile (ossia di area di memoria riservata di dimensione ben definita) dalla dimensione che vogliamo, nella quale leggere e scrivere.
Così, dunque, ad esempio possiamo crearci una variabile (ossia un'area di memoria riservata) di 7 Byte; oppure più ampia nella quale scrivere più dati a mo' di array.
La funzione Alloc(), quindi, unitamente ai Memory Stream è una risorsa per nulla conosciuta, ma molto imteressante e stimolante, poiché ci consente l'accesso diretto in lettura ed in scrittura alla memoria.
Per il rapporto funzione Alloc() e Puntatori rinvio a questa pagina della nostra Wiki:
http://www.gambas-it.org/wiki/index.php?title=Assegnare_ad_un_Puntatore_un%27area_di_memoria_riservata_con_Alloc%28%29


Guardate come è possibile tenere in pugno una Struttura con i Memory Stream:
http://www.gambas-it.org/wiki/index.php?title=Assegnare_valori_ad_una_Struttura_mediante_i_Memory_Stream
Con le variabili Stream è possibile sia leggere che scrivere nelle Strutture... le quali, del resto, non sono altro anch'esse che aree di memoria riservate.
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 31 Ottobre 2014, 15:43:55
Grazie vuott,
Ti svelo perché sono a porre in questo modo certe domande.
Devi sapere che sono ormai più di 15 giorni (10 in realtà poi il primo intoppo) che con alacrità mi sono messo a scrivere un manualetto. Lo so di non sapere ma è anche vero che se uno in Linux non trova quel che vorrebbe trovare l'unica via che ha è quella di farlo lui.
Comunque mi sono detto “ora inizio e poi vediamo... se qualcosa non capisco ho due chance; chiedo; se mi viene risposto uso la risposta nel manuale, altrimenti lascio in sospeso e poi quando proporrò il tutto spero in un aiutino”. Mi sono già arenato sui chiamiamoli così Dati Aggregati & C e come vengono usati in Gambas.
In realtà ci sarebbe anche una terza via “rinunciare” ma questo è contrario ai miei principi.
Non fraintendere non sono così avanti, sono solo alla carrellata iniziale l'infarinatura prima di partire!
Questa cosa è mirata a persone che non hanno mai programmato, che mi guarderei bene dal scrivere qualcosa di diverso e spero non venga interpretato come un atto di presunzione.
Mi servirà anche, se non sopratutto, per confrontarmi con me stesso e quello che so o credo di sapere (poco in verità).
Ad esempio essendo io rimasto al calduccio di Office il massimo di abilità era l'uso dell'oggetto application. Quando avevo bisogno di memorizzare i dati avevo a disposizione le tabelle di access o excel lo so che anche se disegnate in quella forma in realtà sono astrazioni e quindi bisogna aprire la mente ma... ti agevolavano di molto il compito lasciandoti nell'ignoranza.
Allego quello che ho scritto fin'ora tanto per dare l'idea di quali sarebbero le mie intenzioni.
Il fil rouge è la programmazione BASC in Gambas e via via indicare alcune lezioni e/o discussioni per approfondire.
Viene perfetto come esempio quanto tu hai appena scritto sui puntatori e la lezione a cui rimandi che non può che essere chiara anche a uno alle prime armi.

Per tornare invece a bomba puoi spiegarmi il motivo ultimo (oltre al piacere di provare tutte le vie) per cui converrebbe utilizzare un puntatore rispetto al BASIC (se puoi lasciarmi passare la semplificazione)?


@Top Fuel
ciao e grazie,
inserendo questo codice suggerito da te e da vuott a me col la 3.6.0 funziona e ottengo lo stesso output del puntatore. Se hai provato con val() non appare nulla anche a me (era l'unica prova fatta in precedenza).
Codice: gambas [Seleziona]

     Dim c, s As String  
     Dim j, b As Byte        
    
      s = "gambas"        
    
      For j = 1 To String.Len(s)
        c = Mid$(s, j, 1)
        'b = CByte(Asc(c))  
        b = CByte(String.Code(c))
        Print Hex(b), b, c                  
      Next  
      c = Mid$(s, 4, 1)
      s = Replace$(s, c, Chr$(10))  
      Print s  

 :ciao:
Titolo: Re: Dati aggregati
Inserito da: vuott - 31 Ottobre 2014, 16:37:32
Per tornare invece a bomba puoi spiegarmi il motivo ultimo (oltre al piacere di provare tutte le vie) per cui converrebbe utilizzare un puntatore rispetto al BASIC (se puoi lasciarmi passare la semplificazione)?


Se vai a vedere quello che ho aggiunto qui:
http://www.gambas-it.org/smf/index.php?topic=3762.msg34311#msg34311
capirai che avrei potuto ottenere il medesimo risultato più velocemente con le già belle e pronte funzioni della Classe Paint di Gambas. ...ed invece, no, mi sono andato ad impelagare negli ambiti della memoria :rolleyes: . Questo però mi ha aiutato ad affrontare e capire diverse questioni.

Gambas, come tutti i linguaggi di alto livello, ti presentano la pappa già pronta.
Il mio tentativo - come si può vedere dai miei numerosi argomenti inseriti nel forum - è basato su un approccio più che altro culturale. E' un atteggiamento culturale. Forse, come interesse, dovrei affrontare il C o meglio l'Assembly.

Ad ogni modo, ripeto, la necesità pratica dell'uso dei Puntatori in Gambas può - per lo più - sorgere se e quando si cominciano a gestire funzioni di librerie esterne che richiedono variabili di tipo Puntatore.
Titolo: Re: Dati aggregati
Inserito da: vuott - 31 Ottobre 2014, 16:46:12
.... mi sono messo a scrivere un manualetto.
Ho visto.
Desidero che il mio nominativo non sia citato.

E' un lavoro meritorio e meritevole di lode.

Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 31 Ottobre 2014, 19:29:12
.... mi sono messo a scrivere un manualetto.
Ho visto.
Desidero che il mio nominativo non sia citato.

E' un lavoro meritorio e meritevole di lode.


Ciao vuott,
Ho provveduto, come richiesto, a togliere il tuo nome.
Io lo avevo messo perché trovo doveroso riconoscerti che quel che so di Gambas in buona parte è merito tuo, non solo tuo naturalmente ma tu hai contribuito direttamente e indirettamente in parte notevole.
Spero solo che questa tua richiesta non sia legata al contenuto scadente del manuale. :)
Spero inoltre che continuerai a supportarmi nello sforzo.
Invero non so se è fattibile inserirlo in Gambas-it.org se potrò e/o sarò capace a scriverlo come wiki ecc.
Comunque per ora lo scrivo in Writer e poi vedremo.
Rimane il fatto concreto che un supporto è oltremodo gradito.
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: Top Fuel - 31 Ottobre 2014, 19:34:25
L'ho scaricato, lo leggerò e ti dirò cosa ne penso. :)
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 31 Ottobre 2014, 20:36:25
L'ho scaricato, lo leggerò e ti dirò cosa ne penso. :)

Grazie, come tuo solito sempre molto gentile.
Spero che l'eventuale stroncatura non sia totale.
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: Top Fuel - 31 Ottobre 2014, 21:26:27
Da uno che non ha mai scritto un libro in vita sua non credo proprio... :D
Titolo: Re: Dati aggregati
Inserito da: Top Fuel - 31 Ottobre 2014, 21:46:15
Questa storia dei puntatori mi ha fatto venire in testa una mezza idea su una certa cosa che non so se funzionerà ma se ci riesco è simpatica... ;)
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 31 Ottobre 2014, 21:52:54
Se vai a vedere quello che ho aggiunto qui:
http://www.gambas-it.org/smf/index.php?topic=3762.msg34311#msg34311
capirai che avrei potuto ottenere il medesimo risultato più velocemente con le già belle e pronte funzioni della Classe Paint di Gambas. ...ed invece, no, mi sono andato ad impelagare negli ambiti della memoria :rolleyes: . Questo però mi ha aiutato ad affrontare e capire diverse questioni.
...
...

Accidenti troppe cose insieme io proprio non le so fare come invece riesce a voi pivelli cinquantenni!
Mi ero proprio dimenticato che avevo iniziato a studiare il tuo applicativo io avevo scaricato lo 0.0.2 ora ho visto che sei passato al 0.0.3.
Siccome non riuscivo a capire il codice visto che richiama parecchie funzioni C mi ero un po afflosciato...
Ora vedo un esempio in Gambas e quindi mi ripropongo di (ri)studiarlo.
Comunque ti devo dire che sul mio Gambas danno entrambi errore di segmentazione(11).
L'ho scoperto solo ora (10 minuti fa).
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 31 Ottobre 2014, 22:15:23
Da uno che non ha mai scritto un libro in vita sua non credo proprio... :D

Bene allora siamo in due.
Scherzi a parte spero vorrai dare una mano almeno nella ricerca di errori, suggerimenti e … vedi tu.


Questa storia dei puntatori mi ha fatto venire in testa una mezza idea su una certa cosa che non so se funzionerà ma se ci riesco è simpatica... ;)

Ari bene ciò significa che sei una persona creativa.

 :ciao:
Titolo: Re: Dati aggregati
Inserito da: Top Fuel - 02 Novembre 2014, 17:35:20
Più che altro sono tutte rimembranze di quando inchiodavo il C-16 tentando le cose più strane e assurde, e che ho cercato di trasportare in Gambas. :D
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 03 Novembre 2014, 12:38:25
.... mi sono messo a scrivere un manualetto.
Ho visto.
Desidero che il mio nominativo non sia citato.
@vuott
mi è venuto un dubbio e pertanto ti chiedo una precisazione.
Tu hai scritto che desideri che il tuo nominativo non sia citato nel manuale che sto scrivendo.
Io subito ho interpretato che tu non volessi apparire in nessun modo fra i collaboratori di quest'opera (avevo scritto, fra parentesi quadre nel risvolto di copertina, vuott ha iniziato a collaborare spero si uniscano altri...).
Mi sorge però questo dubbio: Tu desideri che io eviti di nominarti anche quando mi riferisco a tuoi post o/e lezioni? Per esempio in questa discussione tu mi rispondi in modo chiaro sui puntatori, tanto che penso di inserire già da subito nel libro questo scambio di battute. Un modo normale sarebbe: “...rimando a quanto scritto dall'utente vuott che così ha risposto circa le mie perplessità sull'argomento...”.
Così posso citare il tuo nominativo? O intendi estendere “il divieto” anche a questo?
Te lo chiedo anche perché, se non intendo male il significato della licenza d'uso Creative Commons io ho l'obbligo di riferire chi ha scritto cosa, anche  perché se invece di rimandare alla discussione magari prematura per gente che non ha mai programmato e che potrebbe confonderli, potrei decidere di farne un sunto estrapolando le parti utili al discorso.
Ho sospeso pertanto la scrittura del manuale in attesa di tue precisazioni.
Grazie
 :ciao:
Titolo: Re: Dati aggregati
Inserito da: vuott - 03 Novembre 2014, 12:51:12
Te lo chiedo anche perché, se non intendo male il significato della licenza d'uso Creative Commons io ho l'obbligo di riferire chi ha scritto cosa
Con il presente chiarimento ti autorizzo formalmente a non citarmi nella tua opera.
Titolo: Re: Dati aggregati
Inserito da: Top Fuel - 03 Novembre 2014, 14:17:18
Che modestia... :)
Titolo: Re: Dati aggregati
Inserito da: Gianluigi - 03 Novembre 2014, 20:02:24
Siccome potrebbe essere insorta un'incomprensione su di una mia frase che cito:
Citazione
Ti svelo perché sono a porre in questo modo certe domande.
Devi sapere che sono ormai più di 15 giorni...
Ci terrei a precisare che io non volevo significare: “Ti faccio una domanda di cui già conosco la risposta, ma è prodromo al mio manuale e pertanto la faccio comunque così poi la posso inserire”.
Solo volevo fare partecipe gli altri del difficile compito che mi ero dato, tutto qui senza oscure premeditate intenzioni.
Poi è chiaro che faccio domande sulle cose che non conosco e che vorrei spiegare, dopo doverosa ricerca, altrimenti questo forum che ci sta a fare?
Io queste cose non le ho mai usate nei miei programmi e quindi chiedo lumi a chi ne sa più di me.
E' difficile spiegare una cosa che non usi in pratica...
Io un po di tempo fa rispondendo ad un vecchio post di Kicco su di un libro tedesco avevo proposto di scriverne uno per super principianti e magari organizzare una specie di raccolta di link alle interessantissime discussioni divise per argomento. Non avendo ricevuto riscontro mi sono messo a fare la parte che posso sperare di portare a termine e cioè il libro per super principianti.
Tanto dovevo.
Titolo: Re: Dati aggregati
Inserito da: vuott - 04 Novembre 2014, 02:04:53
Se riprendi parti della nostra WIKI, ritengo che tu debba espressamente farne cenno; ossia fare cenno alla "WIKI di Gambas-it.org".