Edoardo_95
Advanced Member
Aggiunta gestione ruota NZ : 
	
	
	
		
				
			
		Codice:
	
	Option Explicit
Class clsLunghetta
   Private mSNumeri
   Private mRitardo
   Public Property Let sNumeri(Value)
      mSNumeri = Value
   End Property
   Public Property Get sNumeri()
      sNumeri = mSNumeri
   End Property
   Public Property Let Ritardo(Value)
      mRitardo = Value
   End Property
   Public Property Get Ritardo()
      Ritardo = mRitardo
   End Property
End Class
Sub Main
   Dim Lunghette() : Dim QuantitaLunghette 'Array che conterrà le lunghette è la rispettiva quantità
   Dim aRuote,aRuoteSel,aPosizioni 'utili al rilevamento del ritardo
   Dim k,q,y ' variabili cicli for
   Dim RitardoEstratti(90) 'array contenente i ritardi dei 90 nuemri per estratto
   Dim Lunghetta(5)
   Call ImpostaParametri(Lunghette,QuantitaLunghette,aRuoteSel,aRuote,aPosizioni)
   Call CalcolaRitardiEstratti(RitardoEstratti,aRuote,aPosizioni)
   Dim n1,n2,n3,n4,n5
   Dim Ritardo1,Ritardo2,Ritardo3,Ritardo4,Ritardo5
   Dim RitardoMinimo
   RitardoMinimo = Lunghette(QuantitaLunghette).ritardo
   For n1 = 1 To 86
      Lunghetta(1) = n1
      Call AvanzamentoElab(1,86,n1)
      If ScriptInterrotto Then Exit For
      Ritardo1 = RitardoEstratti(n1)
      If Ritardo1 > RitardoMinimo Then
         For n2 = n1 + 1 To 87
            Lunghetta(2) = n2
            If ScriptInterrotto Then Exit For
            Ritardo2 = Ritardo1
            If Ritardo2 > RitardoEstratti(n2) Then
               Ritardo2 = RitardoEstratti(n2)
            End If
            If Ritardo2 > RitardoMinimo Then
               For n3 = n2 + 1 To 88
                  Lunghetta(3) = n3
                  If ScriptInterrotto Then Exit For
                  Ritardo3 = Ritardo2
                  If Ritardo3 > RitardoEstratti(n3) Then
                     Ritardo3 = RitardoEstratti(n3)
                  End If
                  If Ritardo3 > RitardoMinimo Then
                     For n4 = n3 + 1 To 89
                        Lunghetta(4) = n4
                        If ScriptInterrotto Then Exit For
                        Ritardo4 = Ritardo3
                        If Ritardo4 > RitardoEstratti(n4) Then
                           Ritardo4 = RitardoEstratti(n4)
                        End If
                        If Ritardo4 > RitardoMinimo Then
                           For n5 = n4 + 1 To 90
                              Lunghetta(5) = n5
                              If ScriptInterrotto Then Exit For
                              Ritardo5 = Ritardo4
                              If Ritardo5 > RitardoEstratti(n5) Then
                                 Ritardo5 = RitardoEstratti(n5)
                              End If
                              If Ritardo5 > RitardoMinimo Then
                                 For k = 1 To QuantitaLunghette
                                    If Ritardo5 > Lunghette(k).ritardo Then
                                       For q = QuantitaLunghette To k + 1 Step - 1
                                          Lunghette(q).sNumeri = Lunghette(q - 1).sNumeri
                                          Lunghette(q).Ritardo = Lunghette(q - 1).Ritardo
                                       Next
                                       Lunghette(k).sNumeri = StringaNumeri(Lunghetta)
                                       Lunghette(k).Ritardo = Ritardo5
                                       RitardoMinimo = Lunghette(QuantitaLunghette).ritardo
                                       Exit For
                                    End If
                                 Next
                              End If
                           Next
                        End If
                     Next
                  End If
               Next
            End If
         Next
      End If
   Next
   For y = 1 To QuantitaLunghette
      Call Scrivi("Formazione : " & Lunghette(y).sNumeri & " " & "Ritardo : " & Lunghette(y).ritardo & " Sorte estratto " & "Ruote di rilevamento : " & StringaRuote(aRuoteSel))
   Next
End Sub
Sub ImpostaParametri(Lunghette,QuantitaLunghette,aRuoteSel,aRuote,aPosizioni)
   Dim i,k
   Call ScegliRuote(aRuoteSel,aRuote)
   If aRuote(11) Then
      For k = 1 To 10
         aRuote(k) = True
      Next
      aRuote(12) = False
      aRuote(11) = False
   End If
   QuantitaLunghette = InputBox("Scelta quantià","Scegli la quantità delle Lunghette da rilevare (massimo 100)",50)
   ReDim Lunghette(QuantitaLunghette)
   For i = 1 To QuantitaLunghette
      Set Lunghette(i) = New clsLunghetta
   Next
   ReDim aPosizioni(5)
   For k = 1 To 5
      aPosizioni(k) = True
   Next
End Sub
Sub CalcolaRitardiEstratti(RitardoEstratti,aRuote,aPosizioni)
   Dim IdEstr
   Dim Flag
   Dim Estrazione
   Dim r,e,n
   Dim EstrattoSingolo
   For IdEstr = 1 To EstrazioneFin
      If GetEstrazioneCompleta(IdEstr,Estrazione) Then
         Flag = True
         For r = 1 To UBound(aRuote)
            If r = 11 Then r = 12
            If r <= 11 Then
               If aRuote(r) Then
                  If Estrazione(r,1) = 0 Then
                     Flag = False
                  Else
                     For e = 1 To 5
                        If aPosizioni(e) Then
                           EstrattoSingolo = Estrazione(r,e)
                           RitardoEstratti(EstrattoSingolo) = - 1
                        End If
                     Next
                  End If
               End If
            Else
               If aRuote(r) Then
                  If Estrazione(r - 1,1) = 0 Then
                     Flag = False
                  Else
                     For e = 1 To 5
                        If aPosizioni(e) Then
                           EstrattoSingolo = Estrazione(r - 1,e)
                           RitardoEstratti(EstrattoSingolo) = - 1
                        End If
                     Next
                  End If
               End If
            End If
         Next
         If Flag Then
            For n = 1 To 90
               RitardoEstratti(n) = RitardoEstratti(n) + 1
            Next
         End If
      End If
   Next
End Sub

 
 
		 
	 
 

 
 
		 )
) 
	 
 
 
 
		
 
 
		





















 
	 
     
     
     
     
     
 
		