L
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
Function GetQuantitaNumeri() As Integer
Return Numeri.Estratto.GetUpperBound(0)
End Function
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
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
No su questo ho un po' di difficoltà lo ammettobenissimo la sai popolare la listview ? va popolata cone le proprietà lette da frz
Bene mi metto all'opera non appena possibileti servirà una funzione per trasformare l'array delle ruote che leggi da frz in una stringa , attento che l'array è boolean
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")
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
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