Oppure

Loading
29/10/21 22:57
Giacos71
Postato originariamente da Carlo:

SQL lo devi installare.

Ti informo che gli archivi, sopratutto quello completo storico.txt, fino all' 1/7/1939 ha 8 ruote, poi ne a 10, nel 1943 9 e sono variabili fino al 30/12/1944.
A volte la ruota di roma è stata estratta in data diversa, per esempio nell'estrazione del 4/6/1962, la ruota di roma è stata estratta il 2/6/1962. Non so se sono errori, ma se dovrai mettere i dati in un database, avrai dei problemi.
Il 4/5/2005 appare la riga Nazionale che si chiama RN, e scombina l'ordine delle ruote perché è stata aggiunta in ordine alfabetico, dopo la ruota di roma. Dalla data 4/5/2005, l'archivio e congruo e potresti lavorare con i campi fissi, per fare l'inserimento.


Immagino che ci siano da mettere una baraonda di IF di controllo. Al momento utilizzo vs2012 ho visto che c'è qualcosa di sql mi sembra una versione express.
aaa
30/10/21 8:14
nessuno
Allora ... ti rispondo e poi mi taccio dato che la questione mi interessa relativamente.

SQL è un linguaggio di interrogazione standard, non è un prodotto. Quindi SQL non si installa ma semplicemente si usa scrivendo le query.

I GESTORI di DB, invece, (a vari livelli di potenza ed affidabilità;) sono, ad esempio, "ACCESS" o "SQL SERVER" (nota ... SQL SERVER non solo SQL) e questi sono prodotti da installare.

ACCESS lavora con il linguaggio SQL e va benissimo per il DB che devi gestire tu, ti è stata detta una cosa falsa. Fra l'altro, installare e gestire SQL SERVER (anche nella versione Express) non è cosa semplice e avresti ulteriori difficoltà non indifferenti.

Per quanto riguarda l'inserimento dei dati del file txt nel DB (una volta che il DB è strutturato e normalizzato in tabelle e campi relazionati come ti è stato suggerito), è una cosa semplicissima, che potresti realizzare anche con un eseguibile separato (una sorta di tool) che prenda il txt in input e crei il DB in output (tanto tutte le estrazioni sono sempre disponibili); o anche che prelevi automaticamente da web il file e lo importi (anche questo può essere fatto abbastanza semplicemente).
Il fatto che tu abbia difficolta a leggere un file di testo, diviso in linee, ed utilizzare una Split per ogni linea in un ciclo per suddividere date, ruote e numeri, la dice lunga su quanto dovresti studiare in seguito per gestire il dialogo con il DB in SQL.

Tutto il resto, anche se adesso parli di criteri semplici, sappi che poi diventerà molto più complesso e vorrai fare ulteriori selezioni sempre più contorte e, senza un DB e il linguaggio SQL, NON lo potrai fare (se non impazzendo e scrivendo codice assurdo).

Ultimo consiglio ... evita di usare DataBinding, Dataset e ammennicoli vari offerti da VB.NET per "facilitare" la gestione dei DB perché in realtà la COMPLICANO risultando poco flessibili. Quindi utilizza soltanto QUERY e ISTRUZIONI SQL da inviare al DBMS controllando i risultati con i Recordset.

Detto questo, ti avviso che NON OTTERRAI risultati in tempi decenti se non studierai tutti questi argomenti PRIMA di metterci le mani. In programmazione non ci si inventa in 10 minuti.

Per finire, anche se il lotto sarà per te un passatempo, ti posso garantire che è una perdita di soldi. Ma de gustibus ...
Ultima modifica effettuata da nessuno 30/10/21 8:19
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
30/10/21 12:39
Giacos71
Postato originariamente da nessuno:

Allora ... ti rispondo e poi mi taccio dato che la questione mi interessa relativamente.

SQL è un linguaggio di interrogazione standard, non è un prodotto. Quindi SQL non si installa ma semplicemente si usa scrivendo le query.

I GESTORI di DB, invece, (a vari livelli di potenza ed affidabilità;) sono, ad esempio, "ACCESS" o "SQL SERVER" (nota ... SQL SERVER non solo SQL) e questi sono prodotti da installare.

ACCESS lavora con il linguaggio SQL e va benissimo per il DB che devi gestire tu, ti è stata detta una cosa falsa. Fra l'altro, installare e gestire SQL SERVER (anche nella versione Express) non è cosa semplice e avresti ulteriori difficoltà non indifferenti.

Per quanto riguarda l'inserimento dei dati del file txt nel DB (una volta che il DB è strutturato e normalizzato in tabelle e campi relazionati come ti è stato suggerito), è una cosa semplicissima, che potresti realizzare anche con un eseguibile separato (una sorta di tool) che prenda il txt in input e crei il DB in output (tanto tutte le estrazioni sono sempre disponibili); o anche che prelevi automaticamente da web il file e lo importi (anche questo può essere fatto abbastanza semplicemente).
Il fatto che tu abbia difficolta a leggere un file di testo, diviso in linee, ed utilizzare una Split per ogni linea in un ciclo per suddividere date, ruote e numeri, la dice lunga su quanto dovresti studiare in seguito per gestire il dialogo con il DB in SQL.

Tutto il resto, anche se adesso parli di criteri semplici, sappi che poi diventerà molto più complesso e vorrai fare ulteriori selezioni sempre più contorte e, senza un DB e il linguaggio SQL, NON lo potrai fare (se non impazzendo e scrivendo codice assurdo).

Ultimo consiglio ... evita di usare DataBinding, Dataset e ammennicoli vari offerti da VB.NET per "facilitare" la gestione dei DB perché in realtà la COMPLICANO risultando poco flessibili. Quindi utilizza soltanto QUERY e ISTRUZIONI SQL da inviare al DBMS controllando i risultati con i Recordset.

Detto questo, ti avviso che NON OTTERRAI risultati in tempi decenti se non studierai tutti questi argomenti PRIMA di metterci le mani. In programmazione non ci si inventa in 10 minuti.

Per finire, anche se il lotto sarà per te un passatempo, ti posso garantire che è una perdita di soldi. Ma de gustibus ...


No comunque parla pure sicuramente di SQL tu te intendi più di me.

A questo link docs.microsoft.com/en-US/troubleshoot/dotnet/visual-basic/…

ho trovato questo codice:

Private Sub btnCreateDatabase_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnCreateDatabase.Click
Dim str As String

Dim myConn As SqlConnection = New SqlConnection("Server=(local)\netsdk;" & _
"uid=sa;pwd=;database=master")

str = "CREATE DATABASE MyDatabase ON PRIMARY " & _
"(NAME = MyDatabase_Data, " & _
" FILENAME = 'D:\MyFolder\MyDatabaseData.mdf', " & _
" SIZE = 2MB, " & _
" MAXSIZE = 10MB, " & _
" FILEGROWTH = 10%)" & _
" LOG ON " & _
"(NAME = MyDatabase_Log, " & _
" FILENAME = 'D:\MyFolder\MyDatabaseLog.ldf', " & _
" SIZE = 1MB, " & _
" MAXSIZE = 5MB, " & _
" FILEGROWTH = 10%)"

Dim myCommand As SqlCommand = New SqlCommand(str, myConn)

Try
myConn.Open()
myCommand.ExecuteNonQuery()
MessageBox.Show("Database is created successfully", _
"MyProgram", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If (myConn.State = ConnectionState.Open) Then
myConn.Close()
End If
End Try

End Sub


Ho cercato di seguire il punto 5 ma del link indicato ma nell'msgbox che mi compare mi da un bordello di errori, però se creo una cosa del genere nel designer di visual studio funziona, cioè mi crea il file .mdf e .ldf.

Guardando a quello fatto fatto nel designer di visual studio la striga di connesione che mi da è questa:

C:\Users\Gian luca\Documents\Visual Studio 2012\Projects\Lotto Rendita 1.0\Lotto Rendita 1.0\Estrazioni.sdf

Pero a quanto dovrei averlo questo benedetto SQL avendo installato VS2012(immagine in allegato):

A questo link (spero si possa mettere:

blogs.dotnethell.it/imaginsystems/…

C'è tutto il codice per creare un database da codice (che poi mi dovrei studiare) però dopo aver sistemato alcune cose, ad esempio facendo il debug:

com.ExecuteNonQuery()
'Questa riga mi dava errore saltando il close() emostrando l'msgbox

invece:

com.ExecuteNonQueryAsync()
' Questa no e apparentemente tutto ok

Pero andando a vedere in C: (percorso di creazione del DB) non c'era nulla.

Chiedo umilmente aiuto e mi aspetto molte critiche, che accetto molto volentieri per imparare!

EDIT: ho da poco acquistato questo Microsoft ADO.Net 4.0. Passo per passo - Tim Patrick che mi possa aiutare in una migliore comprensione di ADO e se può essere un buon punto di partenza!
Ultima modifica effettuata da Giacos71 30/10/21 12:58
aaa
30/10/21 13:49
Carlo
Postato originariamente da Giacos71:
Immagino che ci siano da mettere una baraonda di IF di controllo. Al momento utilizzo vs2012 ho visto che c'è qualcosa di sql mi sembra una versione express.

Dipende se è necessario sistemarlo, se bisogna accedere alle estrazioni rispettando uno schema ordinato e congruo, si.
Se invece bisogna fare delle ricerche che producono classifiche sui numeri, come ritardi frequenze ecc. sulle varie ruote, il file va bene così.

Se sapessi che tipo di ricerca vorresti fare e quali dati vorresti produrre....

Di seguito il codice che ho usato per controllare il contenuto del file storico.txt
E' sufficiente aprire un progetto nuovo e copiare il codice, non devi aggiungere nulla sul form:

Public Class Form1
    Dim RecordArchivioTXT As New List(Of String) ' lista che conterrà tutte le righe
    Dim Caselle(65) As TextBox
    Dim lblData As Label
    Dim FileName As String = "C:\storico.txt"

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Carica il file storico.txt della Lottomatica e legge tutte le righe
        Try
            ' Se il file non esiste, verrà comunicato nell'eccezione.
            ' tutto il file nella lista riga per riga
            RecordArchivioTXT = System.IO.File.ReadAllLines(FileName).ToList
        Catch ex As Exception
            ' Mostro l'errore se la sub genera un errore.
            MessageBox.Show("Error message: " & ex.Message)
        End Try

        ' creazione del form
        Dim leftSet As Integer = 20 ' posizione di visualizzazione dello schema
        Dim topSet As Integer = 20 ' posizione di visualizzazione dello schema
        Dim indice As Integer = 0 ' l'indice delle textbox
        Dim ruote() As String = {"BARI", "CAGLIARI", "FIRENZE", "GENOVA", "MILANO", "NAPOLI", "PALERMO", "ROMA", "TORINO", "VENEZIA", "NAZIONALE"}
        ' creazione delle 66 textbox indicizzate
        For riga = 1 To 11
            For colonna = 1 To 6
                Caselle(indice) = New TextBox
                Caselle(indice).Name = "Casella" & indice.ToString("00")
                If colonna = 1 Then ' le textbox che conterranno le ruote
                    Caselle(indice).Top = riga * 31 + topSet + 2
                    Caselle(indice).Left = colonna * 46 + leftSet - 20
                    Caselle(indice).Size = New Size(60, 20)
                    Caselle(indice).BorderStyle = BorderStyle.None
                    Caselle(indice).BackColor = Me.BackColor
                    Caselle(indice).Text = ruote(riga - 1)
                    Caselle(indice).ReadOnly = True
                Else ' le textbox che conterranno i numeri
                    Caselle(indice).Top = riga * 31 + topSet
                    Caselle(indice).Left = colonna * 46 + leftSet
                    Caselle(indice).Size = New Size(40, 20)
                    Caselle(indice).BorderStyle = BorderStyle.FixedSingle
                    Caselle(indice).TextAlign = HorizontalAlignment.Center
                End If
                Controls.Add(Caselle(indice)) ' aggiungo la textbox sul form
                indice += 1
            Next
        Next
        ' label con le info e data
        lblData = New Label
        lblData.Location = New Point(leftSet + 22, topSet)
        lblData.AutoSize = True
        lblData.Text = "l'archivio " & FileName & " contiene n." & RecordArchivioTXT.Count() & " righe"
        Controls.Add(lblData) ' aggiungo la label sul form
        ' scrollbar per scorrere l'archivio
        Dim scrollBar1 As New HScrollBar
        scrollBar1.Location = New Point(Caselle(60).Left, Caselle(60).Top + 31) ' sotto la sessantesima casella
        scrollBar1.Size = New Size(Caselle(59).Width + Caselle(59).Left - Caselle(54).Left, 20) ' lunga come tutte le caselle
        scrollBar1.Maximum = RecordArchivioTXT.Count() - 1 ' valore per esplorare tutte le righe
        scrollBar1.Minimum = 0
        scrollBar1.LargeChange = 10
        scrollBar1.SmallChange = 8
        AddHandler scrollBar1.ValueChanged, AddressOf ScrollBar1_ValueChanged
        Controls.Add(scrollBar1) ' aggiungo la scrollbar sul form
    End Sub

    Private Sub ScrollBar1_ValueChanged(sender As Object, e As EventArgs)
        ' l'archivio non ha sempre le stesse righe per ogni estrazione
        ' bisogna fare una ricerca da dove iniziare e dove finire per leggere un'estrazione
        ' ho scelto la ruota di bari per separare le estrazioni, ma si potrebbe usare la data
        Dim inizio As Integer
        Dim fine As Integer
        Dim pos As Integer = sender.value ' valore della scrollbar
        ' cancello le ultime tre righe delle textbox, che possono contenere vecchi dati
        For i = 48 To 65
            Caselle(i).Text = ""
        Next
        ' cerco all'indietro la ruota di bari partendo da pos (valore della scrollbar)
        Do
            If RecordArchivioTXT(pos).Contains("BA") Then
                inizio = pos ' ruota di bari trovata
                Exit Do
            End If
            pos -= 1
        Loop
        ' cerco in avanti la ruota di bari partendo dalla posizione già trovata
        pos = inizio + 1
        Do
            If RecordArchivioTXT(pos).Contains("BA") Then
                fine = pos - 1 ' ruota di bari trovata
                Exit Do
            End If
            pos += 1
            ' evito di andare a cercare fuori range
            If pos > RecordArchivioTXT.Count() - 1 Then
                fine = RecordArchivioTXT.Count() - 1
                Exit Do
            End If
        Loop
        ' tra inizio e fine ci sono tutte le righe di un'estrazione
        Dim ind = 0
        For pos = inizio To fine
            Dim str As String = RecordArchivioTXT(pos)
            Dim strArr() As String = str.Split()
            lblData.Text = strArr(0) ' la data sulla label
            ' una riga sulle rispettive 6 textbox
            For i = 0 To 5
                Caselle(ind + i).Text = strArr(i + 1)
            Next
            ind += 6 ' incremento per scrivere sulle 6 textbox successive
        Next
        Me.Refresh()
    End Sub
End Class


Non è un esempio e si può ottimizzare alla grande, ma visto che lo avevo scritto, ti può servire per qualche spunto, è commentato ma chiedi pure.
Scusa se ho liqidato la questione SQL in modo superficiale, nessuno ti ha ragguagliato dettagliatamente.
Ultima modifica effettuata da Carlo 30/10/21 14:47
in programmazione tutto è permesso
30/10/21 15:46
Giacos71
Postato originariamente da Carlo:

Postato originariamente da Giacos71:
Immagino che ci siano da mettere una baraonda di IF di controllo. Al momento utilizzo vs2012 ho visto che c'è qualcosa di sql mi sembra una versione express.

Dipende se è necessario sistemarlo, se bisogna accedere alle estrazioni rispettando uno schema ordinato e congruo, si.
Se invece bisogna fare delle ricerche che producono classifiche sui numeri, come ritardi frequenze ecc. sulle varie ruote, il file va bene così.

Se sapessi che tipo di ricerca vorresti fare e quali dati vorresti produrre....

Di seguito il codice che ho usato per controllare il contenuto del file storico.txt
E' sufficiente aprire un progetto nuovo e copiare il codice, non devi aggiungere nulla sul form:

Public Class Form1
    Dim RecordArchivioTXT As New List(Of String) ' lista che conterrà tutte le righe
    Dim Caselle(65) As TextBox
    Dim lblData As Label
    Dim FileName As String = "C:\storico.txt"

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' Carica il file storico.txt della Lottomatica e legge tutte le righe
        Try
            ' Se il file non esiste, verrà comunicato nell'eccezione.
            ' tutto il file nella lista riga per riga
            RecordArchivioTXT = System.IO.File.ReadAllLines(FileName).ToList
        Catch ex As Exception
            ' Mostro l'errore se la sub genera un errore.
            MessageBox.Show("Error message: " & ex.Message)
        End Try

        ' creazione del form
        Dim leftSet As Integer = 20 ' posizione di visualizzazione dello schema
        Dim topSet As Integer = 20 ' posizione di visualizzazione dello schema
        Dim indice As Integer = 0 ' l'indice delle textbox
        Dim ruote() As String = {"BARI", "CAGLIARI", "FIRENZE", "GENOVA", "MILANO", "NAPOLI", "PALERMO", "ROMA", "TORINO", "VENEZIA", "NAZIONALE"}
        ' creazione delle 66 textbox indicizzate
        For riga = 1 To 11
            For colonna = 1 To 6
                Caselle(indice) = New TextBox
                Caselle(indice).Name = "Casella" & indice.ToString("00")
                If colonna = 1 Then ' le textbox che conterranno le ruote
                    Caselle(indice).Top = riga * 31 + topSet + 2
                    Caselle(indice).Left = colonna * 46 + leftSet - 20
                    Caselle(indice).Size = New Size(60, 20)
                    Caselle(indice).BorderStyle = BorderStyle.None
                    Caselle(indice).BackColor = Me.BackColor
                    Caselle(indice).Text = ruote(riga - 1)
                    Caselle(indice).ReadOnly = True
                Else ' le textbox che conterranno i numeri
                    Caselle(indice).Top = riga * 31 + topSet
                    Caselle(indice).Left = colonna * 46 + leftSet
                    Caselle(indice).Size = New Size(40, 20)
                    Caselle(indice).BorderStyle = BorderStyle.FixedSingle
                    Caselle(indice).TextAlign = HorizontalAlignment.Center
                End If
                Controls.Add(Caselle(indice)) ' aggiungo la textbox sul form
                indice += 1
            Next
        Next
        ' label con le info e data
        lblData = New Label
        lblData.Location = New Point(leftSet + 22, topSet)
        lblData.AutoSize = True
        lblData.Text = "l'archivio " & FileName & " contiene n." & RecordArchivioTXT.Count() & " righe"
        Controls.Add(lblData) ' aggiungo la label sul form
        ' scrollbar per scorrere l'archivio
        Dim scrollBar1 As New HScrollBar
        scrollBar1.Location = New Point(Caselle(60).Left, Caselle(60).Top + 31) ' sotto la sessantesima casella
        scrollBar1.Size = New Size(Caselle(59).Width + Caselle(59).Left - Caselle(54).Left, 20) ' lunga come tutte le caselle
        scrollBar1.Maximum = RecordArchivioTXT.Count() - 1 ' valore per esplorare tutte le righe
        scrollBar1.Minimum = 0
        scrollBar1.LargeChange = 10
        scrollBar1.SmallChange = 8
        AddHandler scrollBar1.ValueChanged, AddressOf ScrollBar1_ValueChanged
        Controls.Add(scrollBar1) ' aggiungo la scrollbar sul form
    End Sub

    Private Sub ScrollBar1_ValueChanged(sender As Object, e As EventArgs)
        ' l'archivio non ha sempre le stesse righe per ogni estrazione
        ' bisogna fare una ricerca da dove iniziare e dove finire per leggere un'estrazione
        ' ho scelto la ruota di bari per separare le estrazioni, ma si potrebbe usare la data
        Dim inizio As Integer
        Dim fine As Integer
        Dim pos As Integer = sender.value ' valore della scrollbar
        ' cancello le ultime tre righe delle textbox, che possono contenere vecchi dati
        For i = 48 To 65
            Caselle(i).Text = ""
        Next
        ' cerco all'indietro la ruota di bari partendo da pos (valore della scrollbar)
        Do
            If RecordArchivioTXT(pos).Contains("BA") Then
                inizio = pos ' ruota di bari trovata
                Exit Do
            End If
            pos -= 1
        Loop
        ' cerco in avanti la ruota di bari partendo dalla posizione già trovata
        pos = inizio + 1
        Do
            If RecordArchivioTXT(pos).Contains("BA") Then
                fine = pos - 1 ' ruota di bari trovata
                Exit Do
            End If
            pos += 1
            ' evito di andare a cercare fuori range
            If pos > RecordArchivioTXT.Count() - 1 Then
                fine = RecordArchivioTXT.Count() - 1
                Exit Do
            End If
        Loop
        ' tra inizio e fine ci sono tutte le righe di un'estrazione
        Dim ind = 0
        For pos = inizio To fine
            Dim str As String = RecordArchivioTXT(pos)
            Dim strArr() As String = str.Split()
            lblData.Text = strArr(0) ' la data sulla label
            ' una riga sulle rispettive 6 textbox
            For i = 0 To 5
                Caselle(ind + i).Text = strArr(i + 1)
            Next
            ind += 6 ' incremento per scrivere sulle 6 textbox successive
        Next
        Me.Refresh()
    End Sub
End Class


Non è un esempio e si può ottimizzare alla grande, ma visto che lo avevo scritto, ti può servire per qualche spunto, è commentato ma chiedi pure.
Scusa se ho liqidato la questione SQL in modo superficiale, nessuno ti ha ragguagliato dettagliatamente.


Ho provato il tuo codice e funziona alla grande, stavo solo guardando se potevo adattarlo al mio form estenticamente migliore, ma questa non vuole essere una critica anzi e stato fatto di più di quello che mi aspettavo. Mi sa che qui ci va il cesto per Natale!

La logica del dodice funziona alla grande, però come dicevi tu prima ci sono un tot di ruote, poi aumenta, poi diminuisce (forse a causa della guerra), poi riaumenta, poi esce la Nazionale. A questo punto sia che utilizzi un Database o meno pensavo se creare uno schema come ci si trova attualmente con le 11 ruote lasciando scempre la ruota Nazionale per ultima e con un controllo dove la ruota che non c'è estrazione riempire con degli zeri, difatti stavo anche pensando se davanti ai numeri che vanno da 0 a 9 aggiungere uno zero per avere un campo sempre di 2, ma magari questo e un dettaglio non fondamentale.

Una volta l'archivio era così strutturato: num concorso(settimana),data, Tutti e i 50 estratti (BA1,BA2,VE4,VE)

Ora hanno deciso di strutturarlo così. Difatti da qualche parte devo avere un archivio stutturato come la prima ipotesi in formato Access (una volta lo davano anche così;) , magari il formato txt gli occupa meno spazio sul server, che parte addirittua dal 1871 immagino che li le ruote siano ancora meno.

Almeno avessero messo lo schema con cui salvano i dati sti qua della lottomatica.

La logica su cui vorrei lavorare è questa:

1) Si osserva un qualsiasi numero (a) estratto nell'ultima settimana (la chiameremo BASE), in una qualsiasi ruota delle 10 a disposizione (Bari - Cagliari - Firenze - Genova - Milano - Napoli - Palermo - Roma - Torino e Venezia);

2) Il numero (a) fa parte, per forza di cose, di una tripla i cui altri due componenti (b, c) verranno ricercati risalendo INDIETRO per le 20 ultime settimane precedenti quella che abbiamo a BASE;

3) Se in dette settimane è uscito per primo il numero (b), si giocheranno i numeri (a, c), mentre se è uscito per primo il numero (c) si giocheranno i numeri (a, b): si scarta, cioè, il numero trovato per primo nelle 20 settimane prese in considerazione;

4) Se nelle stesse 20 settimane NESSUNO dei numeri (b, c) è uscito, li si giocherà entrambi, cioè si scarta il numero (a). Lo stesso avviene quando i due numeri (b, c) escono entrambi nella stessa settimana.

Dopo tutto questo tram-tram le giocate andranno effetuate con una tabella puntate ed una sualogica, quindri dovrei anche sapere quelle in corso e a che punto sono, forse un database a questo punto mi ci vorrà per forza.

Scusa volevo anche chiederti un cosiglio visto che un in un Access vecchio oltre al campo indice, c'era anche un campo concorso immagino sarebbe un casino avere un controllo su questo visto che una volta le estrazioni erano solo una volta alla settimana il sabato, ora sono 3 martedi-giovedi-sabato.

Volevo chiederti se puoi dare un'occhio dove ho risposto a nessuno anche per avere una tua opinione sempre che non se la prenda.

Per tutto quello fatto finora e anche i consigli dati da altri non so come ringraziarvi.
Ultima modifica effettuata da Giacos71 30/10/21 15:59
aaa
30/10/21 17:38
Carlo
Se riuscirai ad inserire la creazione delle textbox del mio codice nel tuo progetto, significa che sei anche in grado di modificare le variabili per ottenere lo schema a tuo volere. Naturalmente le texbox o label che hai inserito per visualizzare i numeri e le ruote le devi cancellare dal form in progettazione, invece tutto il resto lo lasci e lo puoi popolare con i dati che ora hai a disposizione.
Per esempio, la label lblData che ho creato da codice non serve, va benissimo quella che hai messo tu in progettazione...
Postato originariamente da Giacos71:
La logica su cui vorrei lavorare è questa:

1) Si osserva un qualsiasi numero (a) estratto nell'ultima settimana (la chiameremo BASE), in una qualsiasi ruota delle 10 a disposizione (Bari - Cagliari - Firenze - Genova - Milano - Napoli - Palermo - Roma - Torino e Venezia);

2) Il numero (a) fa parte, per forza di cose, di una tripla i cui altri due componenti (b, c) verranno ricercati risalendo INDIETRO per le 20 ultime settimane precedenti quella che abbiamo a BASE;

3) Se in dette settimane è uscito per primo il numero (b), si giocheranno i numeri (a, c), mentre se è uscito per primo il numero (c) si giocheranno i numeri (a, b): si scarta, cioè, il numero trovato per primo nelle 20 settimane prese in considerazione;

4) Se nelle stesse 20 settimane NESSUNO dei numeri (b, c) è uscito, li si giocherà entrambi, cioè si scarta il numero (a). Lo stesso avviene quando i due numeri (b, c) escono entrambi nella stessa settimana.


Per capire mi serve un esempio.
prendiamo l'estrazione dell'ultima settimana:

2021/10/28    BA    52    70    51    42    87
2021/10/28    CA    84    48    87    23    78
2021/10/28    FI    78    88    24    50    21
2021/10/28    GE    84    32    23    21    2
2021/10/28    MI    2    11    53    45    79
2021/10/28    NA    77    83    12    2    67
2021/10/28    PA    87    54    57    66    83
2021/10/28    RM    5    6    88    40    30
2021/10/28    RN    88    48    61    43    51
2021/10/28    TO    57    64    79    69    21
2021/10/28    VE    51    2    77    33    64

1) Si osserva un qualsiasi numero (a) estratto nell'ultima settimana (la chiameremo BASE)
scelgo il 52

2) Il numero (52) fa parte, per forza di cose, di una tripla i cui altri due componenti (b, c)
quale tripla? quali sono i componenti b e c? due numeri a caso della stessa ruota?




Ultima modifica effettuata da Carlo 30/10/21 17:43
in programmazione tutto è permesso
30/10/21 19:55
Giacos71
Postato originariamente da Carlo:

Se riuscirai ad inserire la creazione delle textbox del mio codice nel tuo progetto, significa che sei anche in grado di modificare le variabili per ottenere lo schema a tuo volere. Naturalmente le texbox o label che hai inserito per visualizzare i numeri e le ruote le devi cancellare dal form in progettazione, invece tutto il resto lo lasci e lo puoi popolare con i dati che ora hai a disposizione.
Per esempio, la label lblData che ho creato da codice non serve, va benissimo quella che hai messo tu in progettazione...
Postato originariamente da Giacos71:
La logica su cui vorrei lavorare è questa:

1) Si osserva un qualsiasi numero (a) estratto nell'ultima settimana (la chiameremo BASE), in una qualsiasi ruota delle 10 a disposizione (Bari - Cagliari - Firenze - Genova - Milano - Napoli - Palermo - Roma - Torino e Venezia);

2) Il numero (a) fa parte, per forza di cose, di una tripla i cui altri due componenti (b, c) verranno ricercati risalendo INDIETRO per le 20 ultime settimane precedenti quella che abbiamo a BASE;

3) Se in dette settimane è uscito per primo il numero (b), si giocheranno i numeri (a, c), mentre se è uscito per primo il numero (c) si giocheranno i numeri (a, b): si scarta, cioè, il numero trovato per primo nelle 20 settimane prese in considerazione;

4) Se nelle stesse 20 settimane NESSUNO dei numeri (b, c) è uscito, li si giocherà entrambi, cioè si scarta il numero (a). Lo stesso avviene quando i due numeri (b, c) escono entrambi nella stessa settimana.


Per capire mi serve un esempio.
prendiamo l'estrazione dell'ultima settimana:

2021/10/28    BA    52    70    51    42    87
2021/10/28    CA    84    48    87    23    78
2021/10/28    FI    78    88    24    50    21
2021/10/28    GE    84    32    23    21    2
2021/10/28    MI    2    11    53    45    79
2021/10/28    NA    77    83    12    2    67
2021/10/28    PA    87    54    57    66    83
2021/10/28    RM    5    6    88    40    30
2021/10/28    RN    88    48    61    43    51
2021/10/28    TO    57    64    79    69    21
2021/10/28    VE    51    2    77    33    64

1) Si osserva un qualsiasi numero (a) estratto nell'ultima settimana (la chiameremo BASE)
scelgo il 52

2) Il numero (52) fa parte, per forza di cose, di una tripla i cui altri due componenti (b, c)
quale tripla? quali sono i componenti b e c? due numeri a caso della stessa ruota?






Ecco:

TRIPLE DI CADENZA    (Allegato Immagine)                                    
                                        
1    31    61        11    41    71        21    51    81
2    32    62        12    42    72        22    52    82
3    33    63        13    43    73        23    53    83
4    34    64        14    44    74        24    54    84
5    35    65        15    45    75        25    55    85
6    36    66        16    46    76        26    56    86
7    37    67        17    47    77        27    57    87
8    38    68        18    48    78        28    58    88
9    39    69        19    49    79        29    59    89
10    40    70        20    50    80        30    60    90
A    B    C        A    B    C        A    B    C

Avevo allegato un pdf ma non me l'ha preso, devo capire come si fa ad eliminare una risposta se uno si e sbagliato!
Ultima modifica effettuata da Giacos71 30/10/21 20:06
aaa
30/10/21 20:30
Carlo
forse pensi che io sappia di cosa parli, ti ripeto che invece non ho idea di cosa parli.

che significa che se scelgo il numero 52, come già avevo deciso nella precedente risposta, la tripla è questa?: 22 52 82
bisogna cercare all'indietro il 22 e l'82, per 20 settimane? su tutte le ruote? o solo la ruota dove era il 52?
poi vuoi sapere se il 22 e l'82 sono usciti e se sono usciti vuoi sapere la prima data incontrata di entrambi?

Se ho capito bene, fare quello che chiedi è facile. :k:

Un modo come un'altro per scegliere dei numeri a caso. :)
Ultima modifica effettuata da Carlo 30/10/21 20:39
in programmazione tutto è permesso