Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Gestione archivio Lottomatica
Forum - C# / VB.NET - Gestione archivio Lottomatica - Pagina 4

Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:14
Sabato, 30/10/2021
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 il 30/10/2021 alle 10: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à.
PM
Avatar
Giacos71 (Normal User)
Rookie


Messaggi: 34
Iscritto: 06/05/2009

Segnala al moderatore
Postato alle 14:39
Sabato, 30/10/2021
Testo quotato

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 https://docs.microsoft.com/en-US/troubleshoot/dotnet/visual ...

ho trovato questo codice:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub btnCreateDatabase_Click(ByVal sender As System.Object, _
  2. ByVal e As System.EventArgs) Handles btnCreateDatabase.Click
  3. Dim str As String
  4.  
  5. Dim myConn As SqlConnection = New SqlConnection("Server=(local)\netsdk;" & _
  6. "uid=sa;pwd=;database=master")
  7.  
  8. str = "CREATE DATABASE MyDatabase ON PRIMARY " & _
  9. "(NAME = MyDatabase_Data, " & _
  10. " FILENAME = 'D:\MyFolder\MyDatabaseData.mdf', " & _
  11. " SIZE = 2MB, " & _
  12. " MAXSIZE = 10MB, " & _
  13. " FILEGROWTH = 10%)" & _
  14. " LOG ON " & _
  15. "(NAME = MyDatabase_Log, " & _
  16. " FILENAME = 'D:\MyFolder\MyDatabaseLog.ldf', " & _
  17. " SIZE = 1MB, " & _
  18. " MAXSIZE = 5MB, " & _
  19. " FILEGROWTH = 10%)"
  20.  
  21. Dim myCommand As SqlCommand = New SqlCommand(str, myConn)
  22.  
  23. Try
  24. myConn.Open()
  25. myCommand.ExecuteNonQuery()
  26. MessageBox.Show("Database is created successfully", _
  27. "MyProgram", MessageBoxButtons.OK, _
  28. MessageBoxIcon.Information)
  29. Catch ex As Exception
  30. MessageBox.Show(ex.ToString())
  31. Finally
  32. If (myConn.State = ConnectionState.Open) Then
  33. myConn.Close()
  34. End If
  35. End Try
  36.  
  37. 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:

http://blogs.dotnethell.it/imaginsystems/VB.NET-CREARE-DAT ...

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:

Codice sorgente - presumibilmente Plain Text

  1. com.ExecuteNonQuery()

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

invece:

Codice sorgente - presumibilmente Plain Text

  1. 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!


Giacos71 ha allegato un file: Database_VS2012.png (4615 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Giacos71 il 30/10/2021 alle 14:58
PM
Avatar
Carlo (Member)
Guru


Messaggi: 1313
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 15:49
Sabato, 30/10/2021
Testo quotato

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:

Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.     Dim RecordArchivioTXT As New List(Of String) ' lista che conterrà tutte le righe
  3.     Dim Caselle(65) As TextBox
  4.     Dim lblData As Label
  5.     Dim FileName As String = "C:\storico.txt"
  6.  
  7.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  8.         ' Carica il file storico.txt della Lottomatica e legge tutte le righe
  9.         Try
  10.             ' Se il file non esiste, verrà comunicato nell'eccezione.
  11.             ' tutto il file nella lista riga per riga
  12.             RecordArchivioTXT = System.IO.File.ReadAllLines(FileName).ToList
  13.         Catch ex As Exception
  14.             ' Mostro l'errore se la sub genera un errore.
  15.             MessageBox.Show("Error message: " & ex.Message)
  16.         End Try
  17.  
  18.         ' creazione del form
  19.         Dim leftSet As Integer = 20 ' posizione di visualizzazione dello schema
  20.         Dim topSet As Integer = 20 ' posizione di visualizzazione dello schema
  21.         Dim indice As Integer = 0 ' l'indice delle textbox
  22.         Dim ruote() As String = {"BARI", "CAGLIARI", "FIRENZE", "GENOVA", "MILANO", "NAPOLI", "PALERMO", "ROMA", "TORINO", "VENEZIA", "NAZIONALE"}
  23.         ' creazione delle 66 textbox indicizzate
  24.         For riga = 1 To 11
  25.             For colonna = 1 To 6
  26.                 Caselle(indice) = New TextBox
  27.                 Caselle(indice).Name = "Casella" & indice.ToString("00")
  28.                 If colonna = 1 Then ' le textbox che conterranno le ruote
  29.                     Caselle(indice).Top = riga * 31 + topSet + 2
  30.                     Caselle(indice).Left = colonna * 46 + leftSet - 20
  31.                     Caselle(indice).Size = New Size(60, 20)
  32.                     Caselle(indice).BorderStyle = BorderStyle.None
  33.                     Caselle(indice).BackColor = Me.BackColor
  34.                     Caselle(indice).Text = ruote(riga - 1)
  35.                     Caselle(indice).ReadOnly = True
  36.                 Else ' le textbox che conterranno i numeri
  37.                     Caselle(indice).Top = riga * 31 + topSet
  38.                     Caselle(indice).Left = colonna * 46 + leftSet
  39.                     Caselle(indice).Size = New Size(40, 20)
  40.                     Caselle(indice).BorderStyle = BorderStyle.FixedSingle
  41.                     Caselle(indice).TextAlign = HorizontalAlignment.Center
  42.                 End If
  43.                 Controls.Add(Caselle(indice)) ' aggiungo la textbox sul form
  44.                 indice += 1
  45.             Next
  46.         Next
  47.         ' label con le info e data
  48.         lblData = New Label
  49.         lblData.Location = New Point(leftSet + 22, topSet)
  50.         lblData.AutoSize = True
  51.         lblData.Text = "l'archivio " & FileName & " contiene n." & RecordArchivioTXT.Count() & " righe"
  52.         Controls.Add(lblData) ' aggiungo la label sul form
  53.         ' scrollbar per scorrere l'archivio
  54.         Dim scrollBar1 As New HScrollBar
  55.         scrollBar1.Location = New Point(Caselle(60).Left, Caselle(60).Top + 31) ' sotto la sessantesima casella
  56.         scrollBar1.Size = New Size(Caselle(59).Width + Caselle(59).Left - Caselle(54).Left, 20) ' lunga come tutte le caselle
  57.         scrollBar1.Maximum = RecordArchivioTXT.Count() - 1 ' valore per esplorare tutte le righe
  58.         scrollBar1.Minimum = 0
  59.         scrollBar1.LargeChange = 10
  60.         scrollBar1.SmallChange = 8
  61.         AddHandler scrollBar1.ValueChanged, AddressOf ScrollBar1_ValueChanged
  62.         Controls.Add(scrollBar1) ' aggiungo la scrollbar sul form
  63.     End Sub
  64.  
  65.     Private Sub ScrollBar1_ValueChanged(sender As Object, e As EventArgs)
  66.         ' l'archivio non ha sempre le stesse righe per ogni estrazione
  67.         ' bisogna fare una ricerca da dove iniziare e dove finire per leggere un'estrazione
  68.         ' ho scelto la ruota di bari per separare le estrazioni, ma si potrebbe usare la data
  69.         Dim inizio As Integer
  70.         Dim fine As Integer
  71.         Dim pos As Integer = sender.value ' valore della scrollbar
  72.         ' cancello le ultime tre righe delle textbox, che possono contenere vecchi dati
  73.         For i = 48 To 65
  74.             Caselle(i).Text = ""
  75.         Next
  76.         ' cerco all'indietro la ruota di bari partendo da pos (valore della scrollbar)
  77.         Do
  78.             If RecordArchivioTXT(pos).Contains("BA") Then
  79.                 inizio = pos ' ruota di bari trovata
  80.                 Exit Do
  81.             End If
  82.             pos -= 1
  83.         Loop
  84.         ' cerco in avanti la ruota di bari partendo dalla posizione già trovata
  85.         pos = inizio + 1
  86.         Do
  87.             If RecordArchivioTXT(pos).Contains("BA") Then
  88.                 fine = pos - 1 ' ruota di bari trovata
  89.                 Exit Do
  90.             End If
  91.             pos += 1
  92.             ' evito di andare a cercare fuori range
  93.             If pos > RecordArchivioTXT.Count() - 1 Then
  94.                 fine = RecordArchivioTXT.Count() - 1
  95.                 Exit Do
  96.             End If
  97.         Loop
  98.         ' tra inizio e fine ci sono tutte le righe di un'estrazione
  99.         Dim ind = 0
  100.         For pos = inizio To fine
  101.             Dim str As String = RecordArchivioTXT(pos)
  102.             Dim strArr() As String = str.Split()
  103.             lblData.Text = strArr(0) ' la data sulla label
  104.             ' una riga sulle rispettive 6 textbox
  105.             For i = 0 To 5
  106.                 Caselle(ind + i).Text = strArr(i + 1)
  107.             Next
  108.             ind += 6 ' incremento per scrivere sulle 6 textbox successive
  109.         Next
  110.         Me.Refresh()
  111.     End Sub
  112. 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 il 30/10/2021 alle 16:47


in programmazione tutto è permesso
PM
Avatar
Giacos71 (Normal User)
Rookie


Messaggi: 34
Iscritto: 06/05/2009

Segnala al moderatore
Postato alle 17:46
Sabato, 30/10/2021
Testo quotato

Postato originariamente da Carlo:

Testo quotato

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:

Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.     Dim RecordArchivioTXT As New List(Of String) ' lista che conterrà tutte le righe
  3.     Dim Caselle(65) As TextBox
  4.     Dim lblData As Label
  5.     Dim FileName As String = "C:\storico.txt"
  6.  
  7.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  8.         ' Carica il file storico.txt della Lottomatica e legge tutte le righe
  9.         Try
  10.             ' Se il file non esiste, verrà comunicato nell'eccezione.
  11.             ' tutto il file nella lista riga per riga
  12.             RecordArchivioTXT = System.IO.File.ReadAllLines(FileName).ToList
  13.         Catch ex As Exception
  14.             ' Mostro l'errore se la sub genera un errore.
  15.             MessageBox.Show("Error message: " & ex.Message)
  16.         End Try
  17.  
  18.         ' creazione del form
  19.         Dim leftSet As Integer = 20 ' posizione di visualizzazione dello schema
  20.         Dim topSet As Integer = 20 ' posizione di visualizzazione dello schema
  21.         Dim indice As Integer = 0 ' l'indice delle textbox
  22.         Dim ruote() As String = {"BARI", "CAGLIARI", "FIRENZE", "GENOVA", "MILANO", "NAPOLI", "PALERMO", "ROMA", "TORINO", "VENEZIA", "NAZIONALE"}
  23.         ' creazione delle 66 textbox indicizzate
  24.         For riga = 1 To 11
  25.             For colonna = 1 To 6
  26.                 Caselle(indice) = New TextBox
  27.                 Caselle(indice).Name = "Casella" & indice.ToString("00")
  28.                 If colonna = 1 Then ' le textbox che conterranno le ruote
  29.                     Caselle(indice).Top = riga * 31 + topSet + 2
  30.                     Caselle(indice).Left = colonna * 46 + leftSet - 20
  31.                     Caselle(indice).Size = New Size(60, 20)
  32.                     Caselle(indice).BorderStyle = BorderStyle.None
  33.                     Caselle(indice).BackColor = Me.BackColor
  34.                     Caselle(indice).Text = ruote(riga - 1)
  35.                     Caselle(indice).ReadOnly = True
  36.                 Else ' le textbox che conterranno i numeri
  37.                     Caselle(indice).Top = riga * 31 + topSet
  38.                     Caselle(indice).Left = colonna * 46 + leftSet
  39.                     Caselle(indice).Size = New Size(40, 20)
  40.                     Caselle(indice).BorderStyle = BorderStyle.FixedSingle
  41.                     Caselle(indice).TextAlign = HorizontalAlignment.Center
  42.                 End If
  43.                 Controls.Add(Caselle(indice)) ' aggiungo la textbox sul form
  44.                 indice += 1
  45.             Next
  46.         Next
  47.         ' label con le info e data
  48.         lblData = New Label
  49.         lblData.Location = New Point(leftSet + 22, topSet)
  50.         lblData.AutoSize = True
  51.         lblData.Text = "l'archivio " & FileName & " contiene n." & RecordArchivioTXT.Count() & " righe"
  52.         Controls.Add(lblData) ' aggiungo la label sul form
  53.         ' scrollbar per scorrere l'archivio
  54.         Dim scrollBar1 As New HScrollBar
  55.         scrollBar1.Location = New Point(Caselle(60).Left, Caselle(60).Top + 31) ' sotto la sessantesima casella
  56.         scrollBar1.Size = New Size(Caselle(59).Width + Caselle(59).Left - Caselle(54).Left, 20) ' lunga come tutte le caselle
  57.         scrollBar1.Maximum = RecordArchivioTXT.Count() - 1 ' valore per esplorare tutte le righe
  58.         scrollBar1.Minimum = 0
  59.         scrollBar1.LargeChange = 10
  60.         scrollBar1.SmallChange = 8
  61.         AddHandler scrollBar1.ValueChanged, AddressOf ScrollBar1_ValueChanged
  62.         Controls.Add(scrollBar1) ' aggiungo la scrollbar sul form
  63.     End Sub
  64.  
  65.     Private Sub ScrollBar1_ValueChanged(sender As Object, e As EventArgs)
  66.         ' l'archivio non ha sempre le stesse righe per ogni estrazione
  67.         ' bisogna fare una ricerca da dove iniziare e dove finire per leggere un'estrazione
  68.         ' ho scelto la ruota di bari per separare le estrazioni, ma si potrebbe usare la data
  69.         Dim inizio As Integer
  70.         Dim fine As Integer
  71.         Dim pos As Integer = sender.value ' valore della scrollbar
  72.         ' cancello le ultime tre righe delle textbox, che possono contenere vecchi dati
  73.         For i = 48 To 65
  74.             Caselle(i).Text = ""
  75.         Next
  76.         ' cerco all'indietro la ruota di bari partendo da pos (valore della scrollbar)
  77.         Do
  78.             If RecordArchivioTXT(pos).Contains("BA") Then
  79.                 inizio = pos ' ruota di bari trovata
  80.                 Exit Do
  81.             End If
  82.             pos -= 1
  83.         Loop
  84.         ' cerco in avanti la ruota di bari partendo dalla posizione già trovata
  85.         pos = inizio + 1
  86.         Do
  87.             If RecordArchivioTXT(pos).Contains("BA") Then
  88.                 fine = pos - 1 ' ruota di bari trovata
  89.                 Exit Do
  90.             End If
  91.             pos += 1
  92.             ' evito di andare a cercare fuori range
  93.             If pos > RecordArchivioTXT.Count() - 1 Then
  94.                 fine = RecordArchivioTXT.Count() - 1
  95.                 Exit Do
  96.             End If
  97.         Loop
  98.         ' tra inizio e fine ci sono tutte le righe di un'estrazione
  99.         Dim ind = 0
  100.         For pos = inizio To fine
  101.             Dim str As String = RecordArchivioTXT(pos)
  102.             Dim strArr() As String = str.Split()
  103.             lblData.Text = strArr(0) ' la data sulla label
  104.             ' una riga sulle rispettive 6 textbox
  105.             For i = 0 To 5
  106.                 Caselle(ind + i).Text = strArr(i + 1)
  107.             Next
  108.             ind += 6 ' incremento per scrivere sulle 6 textbox successive
  109.         Next
  110.         Me.Refresh()
  111.     End Sub
  112. 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 il 30/10/2021 alle 17:59
PM
Avatar
Carlo (Member)
Guru


Messaggi: 1313
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 19:38
Sabato, 30/10/2021
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...
Testo quotato

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 il 30/10/2021 alle 19:43


in programmazione tutto è permesso
PM
Avatar
Giacos71 (Normal User)
Rookie


Messaggi: 34
Iscritto: 06/05/2009

Segnala al moderatore
Postato alle 21:55
Sabato, 30/10/2021
Testo quotato

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...
Testo quotato

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!


Giacos71 ha allegato un file: Triple_di_cadenza.png (27185 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Giacos71 il 30/10/2021 alle 22:06
PM
Avatar
Carlo (Member)
Guru


Messaggi: 1313
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 22:30
Sabato, 30/10/2021
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 il 30/10/2021 alle 22:39


in programmazione tutto è permesso
PM
Avatar
Giacos71 (Normal User)
Rookie


Messaggi: 34
Iscritto: 06/05/2009

Segnala al moderatore
Postato alle 23:01
Sabato, 30/10/2021
Testo quotato

Postato originariamente da 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. :)



Si esatto essendo 52 si cercano 22 e 82 poi si seguono le regole e la ruota e fissa dove si fa la ricerca. Ovvio che che uno può scegliere di giocarli a caso oppure scegliere di fare la ricerca per tutti i 5 estratti per ogni singola ruota.

PS: magari si era anche capito ma le triple di cadenza hanno distanza 30 cioè 22 (+30) 52 (+30) 82 e così per tutte le altre.


Ultima modifica effettuata da Giacos71 il 30/10/2021 alle 23:04
PM
Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo