Novità

Per dirla alla "Austin Powers" sarebbe...

Ok risolto il problema della funzione
Sì bisogna scrivere > 0

Tom se escono ancora errori fai il confronto con l originale di luigi affiancate le finestre e vedete la soluzione
Solo le property sono state aggiunte
Tutto il resto è uguale
Fammi sapere :)
se riesci posta lo script per tutti; )
 
[TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao I Legend ,[/TD]
[/TR]
[TR]
[TD]vedi se sono stato un bravo "secchione di lotto"[/TD]
[/TR]
[TR]
[TD]come dice il bravo Lotto_Tom[/TD]
[/TR]
[TR]
[TD]di sicuro troverai degli errori …. seppure mi funziona bene.[/TD]
[/TR]
[TR]
[TD]Grazie anche dei due parametri aggiunti :
==================================
Codice:
Option Explicit
			Class clsLunghetta
			   Private aNumeri ' contiene i numeri della lunghetta
			   Private mInizio,mFine,aRuote,mSorte ' parametri per il range analisi
			   Private mClasse ' contine la classe della lunghetta
			   Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
			   Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
			   Private aElencoIncrRitMax ' contiene l'elnco degli incrementi del ritardo max
			   Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
			   ' cui si è registrato l'incremento del ritmax conosciuto
			   Private aRitardiAllIncremento ' contiene il valore del ritardo all'idestrazione in cui
			   ' si è verificato l'incremento
			   Private mRitardo,mRitardoMax,mIncrRitMax,mFrequenza ' valori statistici
			   Private mIncrRitardoMaxSto,mStrIncRitSto
			   Public Property Get IncrRitMaxSto
			       IncrRitMaxSto = mIncrRitardoMaxSto
			   End Property
			   Public Property Get strIncRitMaxSto
			       strIncRitMaxSto = mStrIncRitSto
			   End Property
			   Public Property Get Ritardo
			       Ritardo = mRitardo
			   End Property
			   Public Property Get RitardoMax
			       RitardoMax = mRitardoMax
			   End Property
			   Public Property Get IncrRitMax
			       IncrRitMax = mIncrRitMax
			   End Property
			   Public Property Get Frequenza
			       Frequenza = mFrequenza
			   End Property
			   Public Property Get LunghettaString
			       LunghettaString = StringaNumeri(aNumeri)
			   End Property
			   ' inizializza le proprietà dell'oggetto
			   Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,vetRuote,SorteInGioco)
			       ' acquisisco i parametri per l'analisi
			       mInizio = RangeInizio
			       mFine = RangeFine
			       aRuote = vetRuote
			       mSorte = SorteInGioco
			       ' alimento il vettore con i numeri della lunghetta
			       Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
			       ' calcolo l'elenco dei ritardi
			       Call ElencoRitardiTurbo(aNumeri,aRuote,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
			       ' alimento il vettore che contien l'elenco degli incrementi rit max
			       Call AlimentaVettoreIncrRitMax
			   End Sub
			   ' esegue il calcolo dei valori statistici della lunghetta
			   Sub EseguiStatistica
			       Call StatisticaFormazioneTurbo(aNumeri,aRuote,mSorte,mRitardo,mRitardoMax,mIncrRitMax,mFrequenza,mInizio,mFine)
			   End Sub
			   Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
			       Dim k
			       If IsArray(sLunghetta) Then
			           ' se la lunghetta è gia un array lo copio nel vettore locale dei numeri
			           ReDim aNumeri(UBound(sLunghetta))
			           For k = 1 To UBound(sLunghetta)
			               aNumeri(k) = sLunghetta(k)
			           Next
			       Else
			           ' antepongo un carattere separatore per fare in modo che
			           ' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
			           Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
			       End If
			       ' valorizzo la classe della lunghetta
			       mClasse = UBound(aNumeri)
			   End Sub
			   Private Sub AlimentaVettoreIncrRitMax
			       Dim nRitMax,nIncr,nId,k
			       nId = 0
			       ' inizializzo il vettore a 0 elementi
			       ReDim aElencoIncrRitMax(0)
			       ReDim aIdEstrIncrRitMax(0)
			       ReDim aRitardiAllIncremento(0)
			       ' ciclo sul vettore dei ritardi
			       For k = 1 To UBound(aElencoRit)
			           ' se il ritardo corrente supera il ritmax attuale..
			           If aElencoRit(k) > nRitMax Then
			               If nRitMax > 0 Then
			                   ' se il ritmax attuale è >0 (ivvero ne esiste uno)
			                   ' calcolo di quanto si è incrementato
			                   nIncr = aElencoRit(k) - nRitMax
			                   ' incremento il contatore dei valori trovati
			                   nId = nId + 1
			                   ' ridimensiono il vettore mantenendo i valori precedenti ma
			                   ' aggiungendone uno
			                   ReDim Preserve aElencoIncrRitMax(nId)
			                   ' memorizzo il valore
			                   aElencoIncrRitMax(nId) = nIncr
			                   ' ridimensiono il vettore mantnendo i valori precedenti ma
			                   ' aggiungendone uno
			                   ReDim Preserve aIdEstrIncrRitMax(nId)
			                   ' memorizzo l'id dell'estrazione dove si è avuto l'incremento
			                   aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
			                   ' ridimensiono il vettore mantnendo i valori precedenti ma
			                   ' aggiungendone uno
			                   ReDim Preserve aRitardiAllIncremento(nId)
			                   ' memorizzo il valore del ritardo all'id dell'estrazione dove si è avuto l'incremento
			                   aRitardiAllIncremento(nId) = aElencoRit(k)
			               End If
			               nRitMax = aElencoRit(k)
			           End If
			       Next
			       mStrIncRitSto = StringaNumeri(aElencoIncrRitMax,,True)
			   End Sub
			   Function IsCondizioneRispettata
			       ' verifica che l'incremento dell'ultimo ritmax sia uguale al massimo incr rit max conosciuto.
			       Dim nUpper
			       nUpper = UBound(aElencoIncrRitMax)
			       mIncrRitardoMaxSto = MassimoV(aElencoIncrRitMax,1,nUpper - 1)
			       If aElencoRit(UBound(aElencoRit)) > 0 And aIdEstrIncrRitMax(nUpper) = mFine Then
			           IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) >= mIncrRitardoMaxSto)
			       Else
			           IsCondizioneRispettata = False
			       End If
			   End Function
			   Sub DisegnaGraficoIncrRitMax
			       Dim x,y,k
			       Dim nValoreMaxX,nValoreMaxY,nValoreMinX
			       Dim nStepX,nStepY
			       Dim nUpperVetIncrRit
			       nValoreMinX = MinimoV(aIdEstrIncrRitMax,1)
			       nValoreMaxX = aIdEstrIncrRitMax(UBound(aIdEstrIncrRitMax))
			       nValoreMaxY = MassimoV(aElencoRit,1)
			       nStepX =(nValoreMaxX -(mInizio - 1)) \10
			       nStepY = nValoreMaxY \10
			       Call PreparaGrafico("Formaziione " & StringaNumeri(aNumeri),nValoreMinX,nValoreMaxX,0,nValoreMaxY,nStepX,nStepY)
			       nUpperVetIncrRit = UBound(aElencoIncrRitMax)
			       ' linea dell'incremento rit max
			       ReDim aV(nUpperVetIncrRit - 1,2)
			       For k = 1 To nUpperVetIncrRit
			           x = aIdEstrIncrRitMax(k)
			           y = aElencoIncrRitMax(k)
			           aV(k - 1,1) = x
			           aV(k - 1,2) = y
			       Next
			       Call DisegnaLineaGrafico(aV,vbRed,"IncrRitMax")
			       ' linea dell' rit max
			       ReDim aV(nUpperVetIncrRit - 1,2)
			       For k = 1 To nUpperVetIncrRit
			           x = aIdEstrIncrRitMax(k)
			           y = aRitardiAllIncremento(k)
			           aV(k - 1,1) = x
			           aV(k - 1,2) = y
			       Next
			       Call DisegnaLineaGrafico(aV,vbBlue,"RitMax")
			       ' scrive grafico nell'output
			       Call InserisciGrafico
			   End Sub
			End Class
			Sub Main
			   Dim Inizio,Fine,aRuote,Sorte
			   Inizio = EstrazioneIni
			   Fine = EstrazioneFin
			   Sorte = ScegliEsito
			   Call ScegliRuote(aRuote,Nothing)
			   If(Fine > Inizio) And UBound(aRuote) > 0 And Sorte > 0 Then
			       Select Case ScegliTipoSviluppo
			       Case 1
			           Call AnalisiLunghetteFromFileTxt(Inizio,Fine,aRuote,Sorte)
			       Case 2
			           Call AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,aRuote,Sorte)
			       End Select
			   End If
			End Sub
			Function ScegliTipoSviluppo
			   ReDim aVoci(2)
			   aVoci(1) = "Da file txt con lunghette"
			   aVoci(2) = "Da sviluppo casuale"
			   ScegliTipoSviluppo = ScegliOpzioneMenu(aVoci,1)
			End Function
			Function GetChrSepFromRiga(sRiga)
			   Dim k,schr
			   schr = ""
			   For k = 1 To Len(sRiga)
			       schr = Mid(sRiga,k,1)
			       If IsNumeric(schr) = False Then
			           Exit For
			       End If
			   Next
			   GetChrSepFromRiga = schr
			End Function
			Sub AnalisiLunghetteFromFileTxt(Inizio,Fine,aRuote,Sorte)
			   Dim sFile,aLunghette,nTotLunghette
			   Dim k,sChrSep
			   Dim clsL,collLunghette
			   Set collLunghette = GetNewCollection
			   sFile = ScegliFile(GetDirectoryAppData,".txt")
			   If FileEsistente(sFile) Then
			       Call LeggiRigheFileDiTesto(sFile,aLunghette)
			       nTotLunghette = UBound(aLunghette)
			       If nTotLunghette > 0 Then
			           sChrSep = GetChrSepFromRiga(aLunghette(1))
			           For k = 0 To nTotLunghette
			               Set clsL = New clsLunghetta
			               Call clsL.Init(aLunghette(k),sChrSep,Inizio,Fine,aRuote,Sorte)
			               If clsL.IsCondizioneRispettata Then
			                   Call clsL.EseguiStatistica
			                   collLunghette.Add clsL
			               End If
			               If k Mod 50 = 0 Then
			                   Call Messaggio("Righe esaminate : " & k)
			                   Call AvanzamentoElab(1,nTotLunghette,k)
			                   If ScriptInterrotto Then Exit For
			               End If
			           Next
			           Scrivi "Range analisi : " & GetInfoEstrazione(Inizio) & "-" & GetInfoEstrazione(Fine)
			           Scrivi "Lunghette esaminate : " & nTotLunghette + 1 & " Valide : " & collLunghette.count
			           Scrivi "Sorte : " & NomeSorte(Sorte)
			           Scrivi "Ruote : " & StringaRuote(aRuote)
			           Scrivi
			           Call Scrivi
			           If collLunghette.count > 0 Then
			               Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
			               For Each clsL In collLunghette
			                   Call Scrivi("Lunghetta : " & clsL.LunghettaString)
			                   Call Scrivi("Ritardo : " & clsL.Ritardo)
			                   Call Scrivi("RitMax : " & clsL.RitardoMax)
			                   Call Scrivi("Freq : " & clsL.Frequenza)
			                   Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
			                   Call Scrivi(" IncrRitMaxSto : " & clsL.IncrRitMaxSto)
			                   Call Scrivi(" s incrementi : " & clsL.strIncRitMaxSto)
			                   Call clsL.DisegnaGraficoIncrRitMax
			               Next
			           Else
			               Scrivi "Nessuna lunghetta rispetta le condizioni"
			               Scrivi "Lunghette esaminate " & nTotLunghette + 1
			           End If
			       End If
			   End If
			End Sub
			Sub AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,aRuote,Sorte)
			   Dim sFile,aLunghette,nTotLunghette,nClasse
			   Dim nTrov,nProdotte
			   Dim clsL,collLunghette
			   Set collLunghette = GetNewCollection
			   nTotLunghette = Int(InputBox("Quante lunghette devono essere trovate ?",,10))
			   nClasse = Int(InputBox("Quanti numeri nella lunghetta",,Sorte))
			   If nTotLunghette > 0 And nClasse >= Sorte And nClasse > 0 Then
			       Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
			       For Each clsL In collLunghette
			           Call Scrivi("Lunghetta : " & clsL.LunghettaString)
			           Call Scrivi("Ritardo : " & clsL.Ritardo)
			           Call Scrivi("RitMax : " & clsL.RitardoMax)
			           Call Scrivi("Freq : " & clsL.Frequenza)
			           Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
			           Call clsL.DisegnaGraficoIncrRitMax
			       Next
			   Else
			       Scrivi "Nessuna lunghetta rispetta le condizioni"
			       Scrivi "Lunghette esaminate " & nTotLunghette
			   End If
			   'End If
			End Sub

======================= [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona notte a tutti.[/TD]
[/TR]
[TR]
[TD]A presto[/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[TR]
[TD]PS[/TD]
[/TR]
[TR]
[TD]x Vincenzo[/TD]
[/TR]
[TR]
[TD]hai controllato la tua posta ????[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
 
Ultima modifica:
Ragazzi allora.. la versione di silop non prevedeva ancora mi pare... lo sviluppo tabellare e la scrematura per IncMaxPassato = IncMaxAttuale...

No problem!

Non so come ma salvo errori... (che vi prego comunque di verificare...) sono riuscito ad implementarli! :eek: :D

Ovviamente integrando la sub realizzata qualche post fa dal grande i legend che non credevo comunque sarei riuscito ad implementare :p :D e con 2 piccole aggiunte per selezionare il terzo tipo di sviluppo (quello appunto tabellare) e altre due righe di codice per scegliere di visualizzare solo i casi con IncMaxPassato = IncMaxAttuale.

Adesso ricapitolando con lo script, che vi posto sotto, richiesto da me, realizzato dall'inarrivabile Luigib e dal mitico i legend, postato correttamente da silop e ottimizzato per questi due ultimi aspetti dal sottoscritto, in teoria si può:

1) calcolare i casi con IncmaxPassato = IncMaxAttuale (e/o modificare via codice le relative righe per avere risultanze con IncMaxAttuale > dellIncMaxPassato (come richiedeva vincenzo)

2) visualizzare in modo velocissimo e praticissimo i grafici relativi all'RA e all'INCMAX di qualsiasi formazione e sorte ricercata su una o più ruote unite, tutte e/o nazionale!

3) far partire le proprie analisi da:

a) da un file txt popolato di lunghette di qualsivoglia misura
b) in modo random valutando i 90 numeri
c) in modo random valutando però un gruppo di numeri desiderato scelto da tabella!

In una parola... si tratta di uno script...

s c o p a d e l i c o !!! :cool: :D


GOOD LUCK FRIENDS :D e G R A Z I E di nuovo di cuore a tutti i partecipanti al mega progetto a cominciare ovviamente da Luigib e i legend! ;) :cool:

Ps: Come ciliegina di "platino" credo che mancherebbe solo la possibilità di poter modificare l'opzione "per poter scegliere di elaborare le analisi statistiche con o senza IncmaxAttuale >= IncMaxPassato" tramite finestra di dialogo e non da codice come è adesso...

Codice:
Option Explicit
            Class clsLunghetta
             Private aNumeri ' contiene i numeri della lunghetta
             Private mInizio,mFine,aRuote,mSorte ' parametri per il range analisi
             Private mClasse ' contine la classe della lunghetta
             Private aElencoRit ' conterra l'elenco dei ritardi per la lunghetta
             Private aIdEstrElencoRit ' conterra l'elenco dei ritardi per la lunghetta
             Private aElencoIncrRitMax ' contiene l'elnco degli incrementi del ritardo max
             Private aIdEstrIncrRitMax ' conterra l'elenco degli id estrazione in
             ' cui si è registrato l'incremento del ritmax conosciuto
             Private aRitardiAllIncremento ' contiene il valore del ritardo all'idestrazione in cui
             ' si è verificato l'incremento
             Private mRitardo,mRitardoMax,mIncrRitMax,mFrequenza ' valori statistici
             Private mIncrRitardoMaxSto,mStrIncRitSto
             Public Property Get IncrRitMaxSto
             IncrRitMaxSto = mIncrRitardoMaxSto
             End Property
             Public Property Get strIncRitMaxSto
             strIncRitMaxSto = mStrIncRitSto
             End Property
             Public Property Get Ritardo
             Ritardo = mRitardo
             End Property
             Public Property Get RitardoMax
             RitardoMax = mRitardoMax
             End Property
             Public Property Get IncrRitMax
             IncrRitMax = mIncrRitMax
             End Property
             Public Property Get Frequenza
             Frequenza = mFrequenza
             End Property
             Public Property Get LunghettaString
             LunghettaString = StringaNumeri(aNumeri)
             End Property
             ' inizializza le proprietà dell'oggetto
             Sub Init(sLunghetta,sChrSep,RangeInizio,RangeFine,vetRuote,SorteInGioco)
             ' acquisisco i parametri per l'analisi
             mInizio = RangeInizio
             mFine = RangeFine
             aRuote = vetRuote
             mSorte = SorteInGioco
             ' alimento il vettore con i numeri della lunghetta
             Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
             ' calcolo l'elenco dei ritardi
             Call ElencoRitardiTurbo(aNumeri,aRuote,mSorte,mInizio,mFine,aElencoRit,aIdEstrElencoRit)
             ' alimento il vettore che contien l'elenco degli incrementi rit max
             Call AlimentaVettoreIncrRitMax
             End Sub
             ' esegue il calcolo dei valori statistici della lunghetta
             Sub EseguiStatistica
             Call StatisticaFormazioneTurbo(aNumeri,aRuote,mSorte,mRitardo,mRitardoMax,mIncrRitMax,mFrequenza,mInizio,mFine)
             End Sub
             Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
             Dim k
             If IsArray(sLunghetta) Then
             ' se la lunghetta è gia un array lo copio nel vettore locale dei numeri
             ReDim aNumeri(UBound(sLunghetta))
             For k = 1 To UBound(sLunghetta)
             aNumeri(k) = sLunghetta(k)
             Next
             Else
             ' antepongo un carattere separatore per fare in modo che
             ' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
             Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
             End If
             ' valorizzo la classe della lunghetta
             mClasse = UBound(aNumeri)
             End Sub
             Private Sub AlimentaVettoreIncrRitMax
             Dim nRitMax,nIncr,nId,k
             nId = 0
             ' inizializzo il vettore a 0 elementi
             ReDim aElencoIncrRitMax(0)
             ReDim aIdEstrIncrRitMax(0)
             ReDim aRitardiAllIncremento(0)
             ' ciclo sul vettore dei ritardi
             For k = 1 To UBound(aElencoRit)
             ' se il ritardo corrente supera il ritmax attuale..
             If aElencoRit(k) > nRitMax Then
             If nRitMax > 0 Then
             ' se il ritmax attuale è >0 (ivvero ne esiste uno)
             ' calcolo di quanto si è incrementato
             nIncr = aElencoRit(k) - nRitMax
             ' incremento il contatore dei valori trovati
             nId = nId + 1
             ' ridimensiono il vettore mantenendo i valori precedenti ma
             ' aggiungendone uno
             ReDim Preserve aElencoIncrRitMax(nId)
             ' memorizzo il valore
             aElencoIncrRitMax(nId) = nIncr
             ' ridimensiono il vettore mantnendo i valori precedenti ma
             ' aggiungendone uno
             ReDim Preserve aIdEstrIncrRitMax(nId)
             ' memorizzo l'id dell'estrazione dove si è avuto l'incremento
             aIdEstrIncrRitMax(nId) = aIdEstrElencoRit(k)
             ' ridimensiono il vettore mantnendo i valori precedenti ma
             ' aggiungendone uno
             ReDim Preserve aRitardiAllIncremento(nId)
             ' memorizzo il valore del ritardo all'id dell'estrazione dove si è avuto l'incremento
             aRitardiAllIncremento(nId) = aElencoRit(k)
             End If
             nRitMax = aElencoRit(k)
             End If
             Next
             mStrIncRitSto = StringaNumeri(aElencoIncrRitMax,,True)
             End Sub
             Function IsCondizioneRispettata
             ' verifica che l'incremento dell'ultimo ritmax sia uguale al massimo incr rit max conosciuto.
             Dim nUpper
             nUpper = UBound(aElencoIncrRitMax)
             mIncrRitardoMaxSto = MassimoV(aElencoIncrRitMax,1,nUpper - 1)
             If aElencoRit(UBound(aElencoRit)) > 0 And aIdEstrIncrRitMax(nUpper) = mFine Then
             IsCondizioneRispettata =(aElencoIncrRitMax(nUpper) >= mIncrRitardoMaxSto)
             Else
             IsCondizioneRispettata = False
             End If
             End Function
             Sub DisegnaGraficoIncrRitMax
             Dim x,y,k
             Dim nValoreMaxX,nValoreMaxY,nValoreMinX
             Dim nStepX,nStepY
             Dim nUpperVetIncrRit
             nValoreMinX = MinimoV(aIdEstrIncrRitMax,1)
             nValoreMaxX = aIdEstrIncrRitMax(UBound(aIdEstrIncrRitMax))
             nValoreMaxY = MassimoV(aElencoRit,1)
             nStepX =(nValoreMaxX -(mInizio - 1)) \10
             nStepY = nValoreMaxY \10
             Call PreparaGrafico("Formaziione " & StringaNumeri(aNumeri),nValoreMinX,nValoreMaxX,0,nValoreMaxY,nStepX,nStepY)
             nUpperVetIncrRit = UBound(aElencoIncrRitMax)
             ' linea dell'incremento rit max
             ReDim aV(nUpperVetIncrRit - 1,2)
             For k = 1 To nUpperVetIncrRit
             x = aIdEstrIncrRitMax(k)
             y = aElencoIncrRitMax(k)
             aV(k - 1,1) = x
             aV(k - 1,2) = y
             Next
             Call DisegnaLineaGrafico(aV,vbRed,"IncrRitMax")
             ' linea dell' rit max
             ReDim aV(nUpperVetIncrRit - 1,2)
             For k = 1 To nUpperVetIncrRit
             x = aIdEstrIncrRitMax(k)
             y = aRitardiAllIncremento(k)
             aV(k - 1,1) = x
             aV(k - 1,2) = y
             Next
             Call DisegnaLineaGrafico(aV,vbBlue,"RitMax")
             ' scrive grafico nell'output
             Call InserisciGrafico
             End Sub
            End Class
            Sub Main
             Dim Inizio,Fine,aRuote,Sorte
             Inizio = EstrazioneIni
             Fine = EstrazioneFin
             Sorte = ScegliEsito
             Call ScegliRuote(aRuote,Nothing)
             If(Fine > Inizio) And UBound(aRuote) > 0 And Sorte > 0 Then
             Select Case ScegliTipoSviluppo
             Case 1
             Call AnalisiLunghetteFromFileTxt(Inizio,Fine,aRuote,Sorte)
             Case 2
             Call AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,aRuote,Sorte)
             Case 3
             Call AnalisiLunghetteFromSceglinumeri(Inizio,Fine,aRuote,Sorte)
             End Select
             End If
            End Sub
            Function ScegliTipoSviluppo
             ReDim aVoci(3)
             aVoci(1) = "Da file txt con lunghette"
             aVoci(2) = "Da sviluppo casuale"
             aVoci(3) = "Da sviluppo tabellare"
             ScegliTipoSviluppo = ScegliOpzioneMenu(aVoci,1)
            End Function
            Function GetChrSepFromRiga(sRiga)
             Dim k,schr
             schr = ""
             For k = 1 To Len(sRiga)
             schr = Mid(sRiga,k,1)
             If IsNumeric(schr) = False Then
             Exit For
             End If
             Next
             GetChrSepFromRiga = schr
            End Function
            Sub AnalisiLunghetteFromFileTxt(Inizio,Fine,aRuote,Sorte)
             Dim sFile,aLunghette,nTotLunghette
             Dim k,sChrSep
             Dim clsL,collLunghette
             Set collLunghette = GetNewCollection
             sFile = ScegliFile(GetDirectoryAppData,".txt")
             If FileEsistente(sFile) Then
             Call LeggiRigheFileDiTesto(sFile,aLunghette)
             nTotLunghette = UBound(aLunghette)
             If nTotLunghette > 0 Then
             sChrSep = GetChrSepFromRiga(aLunghette(1))
             For k = 0 To nTotLunghette
             Set clsL = New clsLunghetta
             Call clsL.Init(aLunghette(k),sChrSep,Inizio,Fine,aRuote,Sorte)
             If clsL.IsCondizioneRispettata Then
             Call clsL.EseguiStatistica
             collLunghette.Add clsL
             End If
             If k Mod 50 = 0 Then
             Call Messaggio("Righe esaminate : " & k)
             Call AvanzamentoElab(1,nTotLunghette,k)
             If ScriptInterrotto Then Exit For
             End If
             Next
            
            'prova report solo per casi con incmaxsto = incmax
            
            'If (clsL.IncrRitMax = clsL.IncrRitMaxSto) Then
            ' Call Scrivi(" IncrRitMaxSto : " & clsL.IncrRitMaxSto)
            
             Scrivi "Range analisi : " & GetInfoEstrazione(Inizio) & "-" & GetInfoEstrazione(Fine)
             Scrivi "Lunghette esaminate : " & nTotLunghette + 1 & " Valide : " & collLunghette.count
             Scrivi "Sorte : " & NomeSorte(Sorte)
             Scrivi "Ruote : " & StringaRuote(aRuote)
             Scrivi
             Call Scrivi
             If collLunghette.count > 0 Then
             Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
             For Each clsL In collLunghette
            
            If(clsL.IncrRitMax - clsL.IncrRitMaxSto = 0) Then
            
                    
             Call Scrivi("Lunghetta : " & clsL.LunghettaString)
             Call Scrivi("Ritardo : " & clsL.Ritardo)
             Call Scrivi("RitMax : " & clsL.RitardoMax)
             Call Scrivi("Freq : " & clsL.Frequenza)
             Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
             Call Scrivi(" IncrRitMaxSto : " & clsL.IncrRitMaxSto)
             Call Scrivi(" s incrementi : " & clsL.strIncRitMaxSto)
             Call clsL.DisegnaGraficoIncrRitMax
            
            End If
            
             Next
             Else
             Scrivi "Nessuna lunghetta rispetta le condizioni"
             Scrivi "Lunghette esaminate " & nTotLunghette + 1
             End If
             End If
             End If
            
            'End If
            'fine prova selezione report solo per i casi voluti...
            
            End Sub
            
            Sub AnalisiLunghetteFromNumeriCasuali(Inizio,Fine,aRuote,Sorte)
             Dim sFile,aLunghette,nTotLunghette,nClasse
             Dim nTrov,nProdotte
             Dim clsL,collLunghette
             Set collLunghette = GetNewCollection
             nTotLunghette = Int(InputBox("Quante lunghette devono essere trovate ?",,10))
             nClasse = Int(InputBox("Quanti numeri nella lunghetta",,Sorte))
             If nTotLunghette > 0 And nClasse >= Sorte And nClasse Then
             Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
             For Each clsL In collLunghette
            
            
            If(clsL.IncrRitMax - clsL.IncrRitMaxSto = 0) Then
            
            
             Call Scrivi("Lunghetta : " & clsL.LunghettaString)
             Call Scrivi("Ritardo : " & clsL.Ritardo)
             Call Scrivi("RitMax : " & clsL.RitardoMax)
             Call Scrivi("Freq : " & clsL.Frequenza)
             Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call Scrivi(" IncrRitMaxSto : " & clsL.IncrRitMaxSto)
Call Scrivi(" s incrementi : " & clsL.strIncRitMaxSto)
             Call clsL.DisegnaGraficoIncrRitMax
            
            
            End If
            
             Next
             Else
             Scrivi "Nessuna lunghetta rispetta le condizioni"
             Scrivi "Lunghette esaminate " & nTotLunghette
             End If
             'End If
            End Sub


Sub AnalisiLunghetteFromSceglinumeri(Inizio,Fine,aRuote,Sorte)
Dim nTotLunghette
Dim k,sChrSep,nClasse
ReDim aLunghette(0)
Dim clsL,collLunghette
Set collLunghette = GetNewCollection
sChrSep = " "
ScegliNumeri(aLunghette)
nClasse = CInt(InputBox(" classe sviluppo ",,2))
nTotLunghette = InitSviluppoIntegrale(aLunghette,nClasse)
k = 0
Do While GetCombSviluppo(aLunghette)
k = k + 1
Set clsL = New clsLunghetta
Call clsL.Init(aLunghette,sChrSep,Inizio,Fine,aRuote,Sorte)
If clsL.IsCondizioneRispettata Then
Call clsL.EseguiStatistica
collLunghette.Add clsL
End If
If k Mod 50 = 0 Then
Call Messaggio("Righe esaminate " & k & "  valide " & collLunghette. count)
DoEventsEx
Call AvanzamentoElab(1,nTotLunghette,k)
If ScriptInterrotto Then Exit Do
End If
Loop

Scrivi "Range analisi       : " & GetInfoEstrazione(Inizio) & " - " & GetInfoEstrazione(Fine)
Scrivi "Lunghette esaminate : " & nTotLunghette & " Valide : " & collLunghette.count
Scrivi "Sorte               : " & NomeSorte(Sorte)
Scrivi "Ruote               : " & StringaRuote(aRuote)
Scrivi
Scrivi "Lunghette ordinate per incremento ritardo max",True,,vbYellow
Call Scrivi

If collLunghette.count > 0 Then

Call OrdinaItemCollection(collLunghette,"IncrRitMax",,,- 1)
For Each clsL In collLunghette

If(clsL.IncrRitMax - clsL.IncrRitMaxSto = 0) Then

Call Scrivi("Ritardo   : " & clsL.Ritardo)
Call Scrivi("RitMax    : " & clsL.RitardoMax)
Call Scrivi("Freq      : " & clsL.Frequenza)
Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
Call Scrivi(" IncrRitMaxSto : " & clsL.IncrRitMaxSto)
Call Scrivi(" s incrementi : " & clsL.strIncRitMaxSto)
Call clsL.DisegnaGraficoIncrRitMax

End If

Next
Else
Scrivi "Nessuna lunghetta rispetta le condizioni"
Scrivi "Lunghette esaminate " & nTotLunghette
End If
'End If
'End If
End Sub
 
Ultima modifica:
solare;n1937914 ha scritto:
Bravo tom complimenti

Per cosa? :rolleyes: Per le due piccole implementazioni finali che ho fatto che non sono nulla rispetto tutto l'operato realizzato dai magici luigib e i legend o per la quaterna secca centrata ieri sera a colpo su tutte postata in cedoline vincenti? :eek: :D Comunque sia GRAZIE 1000 solare (spero di nick e di fatto...) ;)
 
Ultima modifica:
Ciao a tutti ,
faccio notare, che , nella ricerca di formazioni in ambi integrali x sorte di estratto e ambo a tutte , succede che l'output segnali delle formazioni valide , ma queste non sono poi riportate , tanto meno il grafico , è giusto cosi?

per lotto_tom mi segnali le righe dove cambiare ...il codice , "=" con ">"
 
vincenzo4221;n1938164 ha scritto:
Grande Tom , bravo e complimenti sinceri e vivissimi , spero presto di inserimi nella scia:):);)..
arrisentirci a presto


Grazie vincenzo4221 :D non ti dico l'incredulità... quando l'ho vista :D :p

Per quanto riguarda la modifica la puoi apportare tranquillamente in queste 3 righe tutte uguali:

Codice:
  If(clsL.IncrRitMax - clsL.IncrRitMaxSto = 0) Then

Da cambiare ovviamente in

Codice:
If(clsL.IncrRitMax >  0) Then

O come preferisci...

Sono tre in quanto anche i modi operativi selezionabili sono 3... e ognuno necessita appunto dell'if "filtro"

Ciao e spero di leggere presto riguardo delle tue top win e anche riguardo quelle di tutti/e i nostri friends... compreso... i due programmatori maghi che dicono di non giocare mai o quasi... :p :) , ma senza i quali tutto questo studio... e divertimento... sarebbe stato impossibile! GRAZIE ANCORA a Luigib e i legend e non solo... ovvero grazie a tutti/e i bravissimi programmatori e lotto amatori e lottologi di questo favoloso forum! :cool:
 
Ultima modifica:
[TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao Lotto_Tom ,[/TD]
[/TR]
[TR]
[TD]bravo e complimenti anche da parte mia per la bellissima vincita.[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Per Vincenzo : oltre a quello che ha detto Lotto_tom, che va bene….[/TD]
[/TR]
[TR]
[TD]io invece ho optato in questo modo sulle tre righe,[/TD]
[/TR]
[TR]
[TD]metto e tolgo l'apostrofo, a secondo dell'elaborazione che voglio fare :
==================
Codice:
			'If(clsL.IncrRitMax - clsL.IncrRitMaxSto = 0) Then   ' togliere ['] per vedere UGUALE max  aggiunta da Lotto_tom
			                    Call Scrivi("Lunghetta : " & clsL.LunghettaString)
			                    Call Scrivi("Ritardo : " & clsL.Ritardo)
			                    Call Scrivi("RitMax : " & clsL.RitardoMax)
			                    Call Scrivi("Freq : " & clsL.Frequenza)
			                    Call Scrivi("IncrRitMx : " & clsL.IncrRitMax)
			                    Call Scrivi(" IncrRitMaxSto : " & clsL.IncrRitMaxSto)
			                    Call Scrivi(" s incrementi : " & clsL.strIncRitMaxSto)
			                    Call clsL.DisegnaGraficoIncrRitMax
			                    'End If     ' togliere ['] per vedere UGUALE max  aggiunta da Lotto_tom
========================= [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]Vorrei fare una richiesta, se possibile, ai scripter di poter avere la possibilità[/TD]
[/TR]
[TR]
[TD]di fare le analisi ovvero l'elaborazione oltre al lotto tradizionale [sistema D(90)] come già facciamo[/TD]
[/TR]
[TR]
[TD]anche sugli altri 24 archivi virtuali paralleli SVP già implementati in SPMT vers. 1.5.64 ,[/TD]
[/TR]
[TR]
[TD]in modo d'avere una ampia scelta di combinazioni da valutare per il gioco.[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buon pomeriggio a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
 
caro Legend , la richiesta di Silop si risolve in un modo molto semplice.
Esiste una funzione (non documentata nell'help perche mi sono dimenticato) che si chiama
ApriFileBaseDati. A questa funzione si passa il percorso completo di un file che deve essere nel formato degli archivi di spaziometria , niente di preoccupante perche gli archivi virtuali lo sono.
Una volta chiamata questa funzione tutte le operazioni saranno eseguite sull'archivio specificato.
Quindi devi fare una nuova sub ScegliArchivio , dentro la sub elenchi tutti ifile dat che stanno nella dir archivivirtuali e poi fai fare la selezione all'utente , s el'utente sceglie un file ricostruisci il percorso grazie alla voce del menu selezionata e lo passi alla suddetta funzione .. fine dei giochi ...però potrebbe capitare una piccola insidia che ti farebbe andare in errore lo script..però purtroppo per te non ho alcuna intenzione di dirti quale sia .la vita dei programmatori è molto dura e gli arrovellamenti si sprecano :-) . la soluzione comunque è banale a te trovarla .. dovrai fare uan modifichetta per risolvere ..
 
Ciao a tutti.
Appena svegliato.
Dopo un sonnellino di appena quattro orette e bello svegliarsi e vedere gli amici che pensano a te:)
Finito di cenare mi butto nella nuova impresa:)
A dopo e buona cena a tutti.;)
 
Ciao oggi a lavoro mi sono" spezzato" la schiena .
Oltre a usare la testa mi tocca usare le braccia e sono pagato con la qualifica di un novellino appena 4 livelli in dietro e per fortuna che sto lavorando.
Ma fin che lavoro sono contento.
Allora tornando a noi
in realtà il compito lo hai già fatto tu in sistemi virtuali.
Domani prometto che aggiorno spaziometria perché mi manca la funzione apribasedati
E posto tutto.
Silo ti chiedo di pazientare 1 giorno :)
Ciao e buona serata a tutti:)
 
i legend;n1938328 ha scritto:
Ciao oggi a lavoro mi sono" spezzato" la schiena .
Oltre a usare la testa mi tocca usare le braccia e sono pagato con la qualifica di un novellino appena 4 livelli in dietro e per fortuna che sto lavorando.
Ma fin che lavoro sono contento.
Allora tornando a noi
in realtà il compito lo hai già fatto tu in sistemi virtuali.
Domani prometto che aggiorno spaziometria perché mi manca la funzione apribasedati
E posto tutto.
Silop ti chiedo di pazientare 1 giorno :)
Ciao e buona serata a tutti:)
==================================== [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 832"]
[TR]
[TD]
LOGOSILOP.gif
[/TD]
[/TR]
[TR]
[TD] [/TD]
[/TR]
[TR]
[TD]Ciao i legend ,[/TD]
[/TR]
[TR]
[TD]….. gli amici servono anche a questo ….[/TD]
[/TR]
[TR]
[TD]…..che dopo il meritato riposo un po di lavoretto (hobby) non fa male ….. Eheheheh[/TD]
[/TR]
[TR]
[TD]…. Non ti preoccupare per me, quando sei comodo farai l'aggiunta allo script.[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]Auguro una buona serata ad entrambi.[/TD]
[/TR]
[TR]
[TD]========================[/TD]
[/TR]
[TR]
[TD]
stickman.gif
[/TD]
[/TR]
[TR]
[TD]Buona sera a tutti.[/TD]
[/TR]
[TR]
[TD]A presto [/TD]
[/TR]
[TR]
[TD]Silop ;) ;) ;)[/TD]
[/TR]
[/TABLE]
 
Ciao silop grazie :)
Oggi non sono riuscito ad aggiornare .e credo che mi sia impossibile farlo prima di domenica.
Mi spiace, non poter fare subito lo script,ma sarà la prima cosa che faccio appena ci riesco .
Ciso e grazie per la pazienza :)
 
Ciao luigi :)
Ciao silop:)

Buona serata :)
Tanti anni fa e qualche kg avevo anche io quegli addominali:)
Però la simpatia è rimasta la stessa:)
Ma sinceramente avrei preferito tenermi gli addominali e diventare antipatico hihihihi.
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 23 novembre 2024
    Bari
    33
    80
    86
    52
    25
    Cagliari
    67
    57
    59
    05
    80
    Firenze
    31
    32
    58
    88
    77
    Genova
    40
    39
    23
    36
    81
    Milano
    28
    58
    45
    25
    38
    Napoli
    20
    82
    23
    44
    57
    Palermo
    76
    56
    88
    62
    31
    Roma
    12
    81
    59
    74
    72
    Torino
    46
    53
    72
    45
    23
    Venezia
    04
    12
    42
    64
    20
    Nazionale
    63
    44
    78
    10
    55
    Estrazione Simbolotto
    Torino
    43
    42
    12
    39
    22
Indietro
Alto