Novità

Mente da programmatore

nella funzione statististica che hai messo nella classe archivio c'è un piccolo errore

1636635260787.png

quell'if spostalo e mettilo prima di questo

1636635301217.png
 
Va in errore prima di end sub

 
L'errore risiede qui:
Codice:
    Function GetQuantitaNumeri() As Integer
            Return Numeri.Estratto.GetUpperBound(0)

        End Function

nella struct formazione
 
allora secondo te si deve fare prima l'inizializzazione e poi lanciare la statistica oppure prima la statistica e poi l'inizializzazione ?
 
tu lanci la statistica prima di inizializzare la struttura percio ti da errore sui numeri
 
ad ogni modo c'è anche un altro problema , non puoi riferirti in quel modo al form principale perche quello è un 'istanza del form principale ,


lancia statistica diventa cosi

Codice:
Sub LanciaStatistica()
        Dim frz As New struct_formazione
        Dim aNumeri() As Integer
        Dim aRuote() As Boolean
        Dim nSorte As Integer
        Dim Inizio As Integer
        Dim fine As Integer

        GetArrayNumeriFromString(TextBox1.Text, aNumeri)
        frmMain.CltSelRuote1.GetCheckSelezionate(aRuote)
        nSorte = Me.cmbsorte.SelectedItem
        Inizio = frmMain.CtlRangeEstrazioni1.Inizio
        fine = frmMain.CtlRangeEstrazioni1.Fine
        frz.Inizializza(aNumeri, aRuote, nSorte, Inizio, fine)
        If cArchivio.StatFormazione(frz) Then
        End If
    End Sub

poi cambia struct_Formazione

Codice:
 Public Structure struct_formazione ' definisce una lunghetta da sottoporre all'analisi statistica 
        Dim Inizio As Integer
        Dim Fine As Integer


        Dim Numeri As StrNumeri
        Dim aPosizioni() As Boolean
        Dim aRuote() As Boolean
        Dim Sorte As Integer

        Dim Ritardo As Integer
        Dim RitardoMax As Integer
        Dim Frequenza As Integer
        Dim Presenze As Integer
        Dim IncrRitMax As Integer


        Dim aUscite() As struct_uscita
        Dim UBoundaUscite As Integer
        Dim UBoundaUsciteCur As Integer

        Dim EstrEsam As Integer

        Sub Inizializza(aNumeri() As Integer, aRuoteUsate() As Boolean, nSorte As Integer, RangeIni As Integer, RangeFin As Integer, Optional aPos() As Boolean = Nothing)
            Dim qNumeri As Integer = aNumeri.GetUpperBound(0)

            Inizio = RangeIni
            Fine = RangeFin
            Sorte = nSorte

            ReDim aPosizioni(5)
            If IsNothing(aPos) Then
                For k As Integer = 1 To 5
                    aPosizioni(k) = True
                Next
            Else
                For k As Integer = 1 To 5
                    aPosizioni(k) = aPos(k)
                Next
            End If

            ReDim aRuote(11)
            For k As Integer = 1 To 11
                aRuote(k) = aRuoteUsate(k)
            Next

            If aRuoteUsate(12) Then
                For k As Integer = 1 To 10
                    aRuote(k) = True
                Next

            End If
            Numeri.Dimensiona(qNumeri)
            For k As Integer = 1 To qNumeri
                Numeri.SetNumero(aNumeri(k), k)
            Next

            Ritardo = 0
            RitardoMax = 0
            Frequenza = 0
            Presenze = 0
            EstrEsam = 0
            IncrRitMax = 0

            UBoundaUscite = 100
            UBoundaUsciteCur = 0
            ReDim aUscite(UBoundaUscite)
        End Sub
        Sub AddUscita(Ritardo As Integer, RitardoMax As Integer, Frequenza As Integer, Presenze As Integer, IncrRitMax As Integer, IdEstr As Integer, Ruota As Integer, Optional aPos() As Boolean = Nothing)

            aUscite(UBoundaUsciteCur).IdEstr = IdEstr
            aUscite(UBoundaUsciteCur).Ritardo = Ritardo
            aUscite(UBoundaUsciteCur).RitardoMax = RitardoMax
            aUscite(UBoundaUsciteCur).Presenze = Presenze
            aUscite(UBoundaUsciteCur).Frequenza = Frequenza
            aUscite(UBoundaUsciteCur).IncrRitMax = IncrRitMax




            aUscite(UBoundaUsciteCur).Ruota = Ruota
            aUscite(UBoundaUsciteCur).Dimensiona()

            If Not IsNothing(aPos) Then
                For e = 1 To 5
                    aUscite(UBoundaUsciteCur).aPos(e) = aPos(e)
                Next
            End If

            UBoundaUsciteCur += 1

            If UBoundaUsciteCur = UBoundaUscite Then
                UBoundaUscite += 100
                ReDim Preserve aUscite(UBoundaUscite)
            End If
        End Sub
        Function GetQuantitaUscite() As Integer
            Return UBoundaUsciteCur - 1
        End Function

        Function GetQuantitaNumeri() As Integer
            Return Numeri.Estratto.GetUpperBound(0)

        End Function

        Sub ComprimiUscite()
            Dim x As Integer = GetQuantitaUscite()
            If x > 0 Then
                ReDim Preserve aUscite(GetQuantitaUscite)
            End If

        End Sub
    End Structure
 
ora riprova a fare la statistica e metti il breakpoint che ti dicevo prima per poter valutare frz
 
oh perfetto ,allora adesso cè da impostare le colonne della list view , metti come modalita di visualizzazione "dettagli" , poi inserisci le colonne nell'ordine che vuoi
le colonne da mettere sono ovviamente tutti i parametri della formazione quindi
numeri
ruote
sorte
ritardo
ritardomax
incrementoritmax
frequenza
presenze
indiceDiConvenienza ( da calcolare)
 
il form della statistica io lo intendevo cosi con un campo testo piu piccolo , anche perche di liste ce ne vogliono 2 , in una andremno a mettere le uscite della formazione

1636638949374.png
 
ti servirà una funzione per trasformare l'array delle ruote che leggi da frz in una stringa , attento che l'array è boolean
 
provalo su un progetot a parte dove inserisci una listview e un pulsante nel pulsante metti questo

Codice:
  ListView1.View = View.Details
        ListView1.Columns.Add("Titolo 1")
        ListView1.Columns.Add("Titolo 2")

        Dim itm As ListViewItem = ListView1.Items.Add("a")
        itm.SubItems.Add("b")
 
Codice:
Public Class frmStatLung
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonScegliNumeri.Click
        SelezionaNumeri(TextBox1.Text)
    End Sub

    Private Sub frmStatLung_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        LoadComboSorte(cmbsorte)
        addcolumns()
    End Sub

    Private Sub ButtonFlash_Click(sender As Object, e As EventArgs) Handles ButtonFlash.Click
        LanciaStatistica()
    End Sub
    Sub LanciaStatistica()
        Dim frz As New struct_formazione
        Dim aNumeri() As Integer
        Dim aRuote() As Boolean
        Dim nSorte As Integer
        Dim Inizio As Integer
        Dim fine As Integer
        GetArrayNumeriFromString(TextBox1.Text, aNumeri)
        frmMain.CltSelRuote1.GetCheckSelezionate(aRuote)
        nSorte = Me.cmbsorte.SelectedItem
        Inizio = frmMain.CtlRangeEstrazioni1.Inizio
        fine = frmMain.CtlRangeEstrazioni1.Fine
        frz.Inizializza(aNumeri, aRuote, nSorte, Inizio, fine)
        If cArchivio.StatFormazione(frz) Then
            Dim itm As ListViewItem = CtlLvOrdinabile1.Items.Add(TextBox1.Text)
            itm.SubItems.Add(RuoteBToString(aRuote))
            itm.SubItems.Add(frz.Sorte)
            itm.SubItems.Add(frz.Inizio)
            itm.SubItems.Add(frz.Fine)
            itm.SubItems.Add(frz.IncrRitMax)
            itm.SubItems.Add(frz.Frequenza)
            itm.SubItems.Add(frz.Presenze)
            CtlLvOrdinabile1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)

        End If
    End Sub
    Sub addcolumns()
        CtlLvOrdinabile1.View = View.Details
        CtlLvOrdinabile1.Columns.Add("Numeri")
        CtlLvOrdinabile1.Columns.Add("Ruote")
        CtlLvOrdinabile1.Columns.Add("Sorte")
        CtlLvOrdinabile1.Columns.Add("Ritardo")
        CtlLvOrdinabile1.Columns.Add("RitardoMax")
        CtlLvOrdinabile1.Columns.Add("IncrementoRitardoMax")
        CtlLvOrdinabile1.Columns.Add("Frequenza")
        CtlLvOrdinabile1.Columns.Add("Presenze")
    End Sub
End Class

Codice:
    Function RuoteBToString(aRuote() As Boolean) As String
        Dim K As Long
        Dim SB As New StringBuilder
        For K = 1 To 11
            If aRuote(K) = True Then
                SB.Append(NomiRuote(K).NomeAbbreviato)
                SB.Append(".")
            End If
        Next
        SB.Remove(SB.Length - 1, 1)
        Return SB.ToString
    End Function
 

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 17 luglio 2025
    Bari
    22
    33
    04
    68
    47
    Cagliari
    09
    52
    27
    21
    47
    Firenze
    05
    33
    72
    17
    08
    Genova
    76
    67
    65
    68
    45
    Milano
    75
    52
    46
    34
    22
    Napoli
    40
    23
    71
    12
    22
    Palermo
    44
    89
    39
    01
    31
    Roma
    89
    04
    05
    82
    26
    Torino
    05
    59
    85
    88
    24
    Venezia
    69
    45
    75
    44
    30
    Nazionale
    28
    85
    16
    03
    83
    Estrazione Simbolotto
    Nazionale
    39
    26
    40
    23
    24

Ultimi Messaggi

Indietro
Alto