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.


Topics - Gianluigi

Pagine: 1 2 3 [4] 5 6 ... 12
46
Database / Test con il componente gb.db.form
« il: 10 Maggio 2020, 23:05:12 »
Allego uno dei tentativi fatti per cercare di capire come funziona gb.db.form.
Questo è l'unico modo che non mi restituisce qualche tipo di errore.
Apparentemente funziona in quanto mostra i contatti giusti di quanto già inserito nel database col codice.
Il problema non risolto è quello di poter inserire nuovi contatti e non mi riesce di andare avanti.
Qualche idea?
Naturalmente intendo soluzioni inerenti al componente gb.db.form e non di tipo "tradizionale".

 :ciao:

P.S. Non fate caso agli indirizzi stranieri si ma diciamo all'italiana...

47
Domande tecniche / Confronto fra PdfWriter e gb.report2
« il: 27 Aprile 2020, 10:41:11 »
dext, Golia,

voi usate PdfWtiter di md9327 che però non è più supportato dall'autore e che usa le qt4.
Vi consiglio di usare gb.report2 di Fabien Bodard che invece viene costantemente aggiornato dall'autore, per vedere come funziona vi rimando alla pagina della nostra wiki:
https://www.gambas-it.org/wiki/index.php?title=Creare_report_con_il_componente_gb.report2

48
Programmazione / Ricerca algoritmo per Sudoku
« il: 13 Aprile 2020, 19:20:15 »
Il sudoku ha regole semplici, si gioca su una tabella di nove per nove caselle (9×9) in ognuna delle quali si deve inserire una cifra, da uno a nove.
Ogni riga e ogni colonna deve contenere tutte le cifre, da uno a nove, senza ripetizioni.
Ulteriore condizione anche ogni blocco di caselle tre per tre (3×3), contrassegnato da linee più marcate, deve contenere le nove cifre, senza ripetizioni. Il sudoku si presenta con una parte delle cifre già inserite in alcune caselle da un minimo di 20 a un massimo di 35.
Per essere un vero sudoku, deve inoltre avere una soluzione unica.
Ah e naturalmente deve poter essere risolto.
Se ho capito bene quello che ho letto, per avere una soluzione unica sembrerebbe  che i numeri minimi da mostrare siano 17 poiché pare sia stato provato che inserendone 16, le soluzioni possibili risulterebbero già 2 e il numero aumenterebbe esponenzialmente diminuendo tale cifra . Normalmente i numeri inseriti nello schema sono da 20 a 35 più basso è il numero delle cifre già inserite più la soluzione del gioco dovrebbe secondo logica essere difficile.
Invero ho anche letto che essendo un gioco di logica e non matematico la difficoltà è data dalla disposizione dei numeri dati e non dalla quantità.
A proposito di disposizione pare che sia stato dimostrato che per avere una soluzione univoca occorre che almeno un valore sia presente all’interno dell’area mostrata nell’immagine allegata.
Queste due caratteristiche, e cioè sopra i 17 valori esposti con almeno uno all’interno dell’area, ci aiutano a escludere parecchi schemi sicuramente non univoci ma non ne garantiscono l’unicità che sembra meglio ottenuta attraverso il metodo dei Dancing Links. Vedi ( https://en.wikipedia.org/wiki/Knuth%27s_Algorithm_X )

Qualcuno conosce l’algoritmo, magari lo ha già tradotto in gambas?

Qui visto che si parte da una griglia completa, vale a dire da un sudoku già compilato forse basta anche meno, ma non mi riesce proprio di capire come posso fare per scoprire se la soluzione data sia l’unica.
Qualcuna ha voglia di cimentarsi in questo rompicapo?

Allego la prima parte del codice di sudoku quella in cui si crea una griglia completa e via via nei vari passaggi commentati nel codice si affina la soluzione per poi passare al mostrare il gioco al giocatore, mentre si stampa la soluzione in console.

Come detto manca ancora l’algoritmo per sapere se la soluzione è unica, manca anche e tutto il resto che qui è solo in parte accennato, siamo solo all’inizio.

Grazie a chiunque voglia dare il proprio parere anche solo al codice già scritto.
La mia matematica è elementare pertanto vogliate scusare le ingenuità... siete i ben venuti a correggerle.

 :ciao:

49
Altre piattaforme ARM / Una domanda su Arduino e Gambas
« il: 04 Aprile 2020, 23:53:43 »
Spero di avere azzeccato il luogo giusto dove postare  :-[

Ragazzi,

un nostro amico del Paraguay ci pone questa domanda:

ha fatto un programma che comunica con un Arduino (Wemos D1 R1 ) via Wi-Fi in UDP...

L' Arduino ha un suo IP ed una sua porta...

Ora vorrebbe aggiungere un altro Arduino con un differente IP.

Deve aggiungere un secondo UdpSocket al Form o può fare una seconda istanza del primo?

Spero non lo deluderete...

 :ciao:

50
Progetti degli utenti / Sudoku
« il: 01 Aprile 2020, 20:05:07 »
Io non ho mai giocato a sudoku, una domanda sulla ML mi ha incuriosito e sono andato a vedere su Wikipedia come funziona.
Non so se il gioco che viene mostrato è corretto, se ve ne capite potete dare un occhio e un parere?

Grazie

51
Programmazione / Non conoscevo Assert
« il: 02 Marzo 2020, 19:56:39 »
Un'interessante risposta sul Bugtracker di Benoit alla richiesta di Bruce:

This is just a shortcut to save having to include Print/Error commands just before the stop.
During development, I frequently leave unresolved error conditions hanging around with Stop's in them as I might be focussing on some other part of the code. These are usually the error conditions that don't happen often, such as I'm processing a large set of records with some complex code, maybe one record in the set has a null value that I haven't figured out what to do about yet as I'm looking at some other aspect of the processing....
So,
 
Codice: [Seleziona]
If not CurrentTransaction.Taxable Then Stop "Tax flag is null"
is a lot more concise than
 
Codice: [Seleziona]
  If not CurrentTransaction.Taxable Then
    Print "Tax flag is null"
    Stop
  Endif
(Especially in the middle of a complex set of if..elses)
and this is the important bit...
would immediately take my mind to the problem rather than having to think about what caused the Stop.
Also the reason for the stop might (and sometimes does) occur somewhere else..  so
 
Codice: [Seleziona]
If sFault then Stop sFault
where sFault is a message set nowhere near where the Stop command is in the code....

Benoit:

Why don't you use the ASSERT instruction for that?
Codice: [Seleziona]
Assert CurrentTransaction.Taxable Print "Tax flag is null"

Semplice dimostrazione di utilizzo:

Codice: [Seleziona]
Public Sub Main()

  Dim UnaStringaQualsiasi As String

  Assert UnaStringaQualsiasi Print "#ERRORE la stringa risulta vuota"

End

 :ciao:

52
Domande tecniche / Il pulsante menu Git della IDE
« il: 30 Ottobre 2019, 20:20:19 »
Faccio riferimento a questa discussione (*) sulla ML aperta da Hans Lehmann, l'autore del libro tedesco ora anche in inglese (https://gambas-buch.de/dwen/doku.php).
E in particolare alla risposta (**) data da Benoit Minisini.
Vi chiederei gentilmente di postare qui tutte le esperienze che riguardano l'uso di Git esclusivamente nella IDE con i quattro pulsanti (menu) di git.
Se avete notizie interessanti extra IDE le potete postare in quest'altra discussione:
https://www.gambas-it.org/smf/index.php?topic=6632.msg44500#msg44500


(*) https://lists.gambas-basic.org/pipermail/user/2019-October/068080.html
(**) https://lists.gambas-basic.org/pipermail/user/2019-October/068084.html


Questo è il mio contributo.
Se capisco bene il significato dei quattro pulsanti menu di git essi equivalgono a:

Inoltra = git commit (https://www.git-scm.com/docs/git-commit)
Sincronizza = git pull (https://www.git-scm.com/docs/git-pull)
Annulla tutte le modifiche = git revert (https://www.git-scm.com/docs/git-revert)
Aggiungi tutto al repository = git add (https://www.git-scm.com/docs/git-add)

 :ciao:

53
Avvisi / Guida al forum di Gambas-it
« il: 24 Ottobre 2019, 17:30:58 »
Allego una guida al nostro forum.

 :ciao:

54
Segnalazione bug / Siti Spagnolo e Francese non raggiungibili
« il: 01 Ottobre 2019, 10:09:01 »
@vuott
come da oggetto: il sito spagnolo non si apre e appare un avviso si rischio sicurezza, mentre in quello francese appare un avviso di errore.

55
Programmazione / [Risolto] PostgreSQL come creare un nuovo database
« il: 02 Settembre 2019, 13:29:06 »
Stavo creando un database di prova postgresql per verificarne i passaggi.
Purtroppo devo aver combinato un pasticcio in quanto alla verifica finale ottengo questi risultati, vale a dire che, se capisco bene, invece di aver popolato il nuovo database "rubinettofelice" ho popolato direttamente il template1.

Questo è quanto mi viene restituito dal terminale:

Codice: [Seleziona]
~$ psql -U postgres
Password for user postgres:
psql (11.5 (Ubuntu 11.5-0ubuntu0.19.04.1))
Type "help" for help.

postgres=# \l

      Name       |   Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------------+-----------+----------+-------------+-------------+-----------------------
 postgres        | postgres  | UTF8     | it_IT.UTF-8 | it_IT.UTF-8 |
 rubinettofelice | gianluigi | UTF8     | it_IT.UTF-8 | it_IT.UTF-8 |
 template0       | postgres  | UTF8     | it_IT.UTF-8 | it_IT.UTF-8 | =c/postgres          +
                 |           |          |             |             | postgres=CTc/postgres
 template1       | postgres  | UTF8     | it_IT.UTF-8 | it_IT.UTF-8 | =c/postgres          +
                 |           |          |             |             | postgres=CTc/postgres
(4 rows)

postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 gianluigi | Create role, Create DB                                     | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

postgres=# \c rubinettofelice
You are now connected to database "rubinettofelice" as user "postgres".
rubinettofelice=# \d
Did not find any relations.  <<===================================================== SIGH!

rubinettofelice=# \dn
  List of schemas
  Name  |  Owner   
--------+----------
 public | postgres
(1 row)

rubinettofelice=# \c template1
You are now connected to database "template1" as user "postgres".
template1=# \d
                 List of relations
 Schema |       Name        |   Type   |   Owner   
--------+-------------------+----------+-----------
 public | fipart            | table    | gianluigi
 public | tagent            | table    | gianluigi
 public | tagent_idagen_seq | sequence | gianluigi
 public | tfilms            | table    | gianluigi
 public | tfilms_idfilm_seq | sequence | gianluigi
 public | tst_fi            | table    | gianluigi
 public | tstars            | table    | gianluigi
 public | tstars_idstar_seq | sequence | gianluigi
(8 rows)

Io ho creato il database da terminale con questi passaggi.

Prima ho creato l'utente gianluigi:

Codice: [Seleziona]
~$ psql -U postgres -d template1
Password for user postgres:
psql sql (11.5 (Ubuntu 11.5-0ubuntu0.19.04.1))
Type "help" for help.

template1=# CREATE ROLE gianluigi WITH CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'miapassword';
CREATE ROLE

Poi ho creato il nuovo database "rubinettofelice":

Codice: [Seleziona]
~$ psql -U test -d template1
Password for user test:
psql sql (11.5 (Ubuntu 11.5-0ubuntu0.19.04.1))
Type "help" for help.

template1=> CREATE DATABASE rubinettofelice WITH OWNER=gianluigi TEMPLATE= template1 ENCODING='utf-8';
CREATE DATABASE

A questo punto ha creato un progetto Gambas con un modulo (MBase.module):

Codice: [Seleziona]
' Gambas module file


Private $hConn As New Connection

Public Sub OpenDB(DBType As String, DBHost As String, DBName As String, UserName As String, UserPassword As String)

  $hConn.Close()
  $hConn.Type = Lower(DBType)
  $hConn.Host = DBHost
  '$hConn.Name = ""
  $hConn.Login = UserName
  $hConn.Password = UserPassword
  '$hConn.Port = "5432"

  $hConn.Open()

  If $hConn.Databases.Exist(DBName) Then
    MakeTable()
  Else
    Error.Raise(("Database not found.\n\nAre you sure that the database exist?"))
  Endif
 
  $hConn.Close()
Catch
  Message.Error(Error.Text & "\n\n" & Error.Where)
  FMain.Close()
 
End

Public Sub CloseDB()
 
  $hConn.Close()
 
End

Private Sub MakeTable()

  Dim hTable As Table

  $hConn.Begin

  If Not $hConn.Tables.Exist("tstars") Then
    hTable = $hConn.Tables.Add("tstars")
 
    hTable.Fields.Add("idstar", db.Serial)
    hTable.Fields.Add("stname", db.String, 40)
    hTable.Fields.Add("stsurn", db.String, 40)
    hTable.Fields.Add("stheig", db.Integer)
    hTable.Fields.Add("stweig", db.Integer)
    hTable.Fields.Add("stbirt", db.Date)
    hTable.Fields.Add("sttele", db.String, 13)
    hTable.Fields.Add("idagen", db.integer)
    hTable.Fields.Add("stimag", db.Blob)
    hTable.PrimaryKey = ["idstar"]
    hTable.Update

  Endif
 
  If Not $hConn.Tables.Exist("tagent") Then
    hTable = $hConn.Tables.Add("tagent")

    hTable.Fields.Add("idagen", db.Serial)
    hTable.Fields.Add("agname", db.String, 40)
    hTable.Fields.Add("agsurn", db.String, 40)
    hTable.Fields.Add("agaddr", db.string, 80)
    hTable.Fields.Add("agcity", db.string, 40)
    hTable.Fields.Add("agstat", db.string, 40)
    hTable.Fields.Add("agcoun", db.string, 40)
    hTable.Fields.Add("agpost", db.string, 10)
    hTable.Fields.Add("agtele", db.String, 13)
    hTable.Fields.Add("agmail", db.String, 30)
    hTable.Fields.Add("agwebs", db.String, 30)
    hTable.PrimaryKey = ["idagen"]
    hTable.Update
  Endif

  If Not $hConn.Tables.Exist("tfilms") Then
    hTable = $hConn.Tables.Add("tfilms")

    hTable.Fields.Add("idfilm", db.Serial)
    hTable.Fields.Add("finame", db.String, 100)
    hTable.Fields.Add("fiyear", db.Date)
    hTable.Fields.Add("fiprod", db.string, 100)
    hTable.Fields.Add("fiboxo", db.Float)
    hTable.PrimaryKey = ["idfilm"]
    hTable.Update
  Endif

  If Not $hConn.Tables.Exist("tst_fi") Then
    hTable = $hConn.Tables.Add("tst_fi")

    hTable.Fields.Add("idstar", db.Integer)
    hTable.Fields.Add("idfilm", db.Integer)
    hTable.Fields.Add("sfpart", db.String, 20, "ND")
    'hTable.Indexes.Add("x_stfi", ["idstar", "idfilm"])
    hTable.Update
  Endif

  If Not $hConn.Tables.Exist("fipart") Then
    hTable = $hConn.Tables.Add("fipart")

    hTable.Fields.Add("paname", db.String, 10)
    hTable.Update
  Endif

  $hConn.Commit
Catch
  $hConn.Rollback
  CloseDB()
  Debug Error.Where, Error.Text, Error.Code

End

E una finestra nella quale  apro una finestra di connessione che crea qualcosa di simile e fa partire il codice del modulo:

Codice: [Seleziona]
MBase.OpenDB("postgresql", "localhost", "rubinettofelice", "gianluigi", "miapassword")

Qualcuno può aiutarmi a capire dove ho commesso l'errore?

Grazie  :ciao:

56
Programmazione / Ridimensionare il font in una label
« il: 26 Agosto 2019, 19:57:27 »
Avete un metodo di ridimensionamento più valido da propormi?
Grazie

Vedi allegato

57
Segnalazione bug / Richiesta di prova Bug nella funzione Error
« il: 13 Giugno 2019, 19:55:29 »
Qualcuno vorrebbe fare questa prova per confermare o meno questo bug:

1) Avviare il progetto, dovreste ottenere un messaggio di errore corretto: Error number: 26 Division by zero.
2) Decommentare l'istruzione Finally e far andare di nuovo il programma. Ora il messaggio di errore (dopo quello di finally) dovrebbe essere errato: Error number: -1 Unable to load image
3) In Finally cambiare il messaggi con Print per inviare l'output ("finally done") alla console: il messaggio di errore dovrebbe essere nuovamente corretto.

Grazie

58
Programmazione / Proprietà TextAlign di GridView e TableView
« il: 18 Maggio 2019, 23:18:44 »
Dalla master 6f63a70e possiamo usufruire del testo allineato delle intestazioni di riga.
Mostro un breve codice di esempio (serve una Form con una TableView1):
Codice: [Seleziona]
Public Sub Form_Open()

  Dim aName As String[] = ["Goofy", "Pluto", "Minnie", "Mickey Mouse", "Scrooge McDuck"]

  With TableView1
    .Rows.Count = 5
    .Columns.Count = 4
    .Header = GridView.Vertical
  End With
  For i As Integer = 0 To 4
    TableView1.Rows[i].TextAlignment = Align.Right
    TableView1.Rows[i].Text = aName[i]
  Next

 End

59
OpenBar / La Password
« il: 16 Maggio 2019, 11:17:55 »

60
Programmazione / Componente gb.chart per creare grafici
« il: 14 Maggio 2019, 17:13:14 »
Vi informo di aver scritto una pagina wiki sul componente in oggetto.
La trovate qui:
https://www.gambas-it.org/wiki/index.php?title=Creare_un_grafico_con_il_componente_gb.chart

Spero sia utile e comprensibile, a disposizione per eventuali variazioni.

Pagine: 1 2 3 [4] 5 6 ... 12