| Ciao allora se ho capito bene , lo script se non ho fatto errori dovrebbe trovare lo stesso numero che ha il medesimo ritardo di livello ma diverso rc su piu ruote e anche lo stesso numero che ha il medesimo RC ma RSL diverso . purtroppo non essendo un programmatore non so se ho fatto errori , provate a testarlo perfavore se ci fossero errori segnalateli e se riesco provo a sistemare ecco lo script muovendo le estrazioni da spaziometria i valori dello script cambiano lo script è una fotografia all ultima estrazione in archivio. non è uno storico, il mio pc è vecchiotto e non lo lancio in lavori troppo impegnativi fatemi sapere che ne pensate CODICE Option Explicit ' non si garantisce che i risultati ottenuti siano esatti ' non si escludono eventuali e sempre possibili bug ' lo script non da previsioni da giocare ma una semplice foto statistica sempre che sia esatta
Sub Main Dim aRsl(90,13) Dim aRit(90,13) Dim aRuote:aRuote = Array(0,1,2,3,4,5,6,7,8,9,10,12) Dim E,R,m Dim Ruota,idEstrFin,Rit,nRSL,nLiv,sNumSinc Dim RitSincMax,nSincMax,RSincMax idEstrFin = EstrazioneFin RitSincMax = 0 nSincMax = 0 RSincMax = "" m = 0 ' ciclo i 90 estratti For E = 1 To 90 aRsl(E,1) = E aRit(E,1) = E ReDim aRslrip(0) ReDim aRitrip(0) For R = 1 To UBound(aRuote) ' funzione da verificare non si garantisce la corretta funzionalita Call RitSincDiLiv2(E,aRuote(R),idEstrFin,Rit,nRSL,nLiv,sNumSinc) ' questa funzione è corretta perche interna a spaziometria ' nRSL= RitSincDiLiv(E,aRuote(R),idEstrFin,nliv) If nLiv = 1 Then If RitSincMax < nRSL Then RitSincMax = nRSL nSincMax = E RSincMax = SiglaRuota(aRuote(R)) End If ' cerco il numero con massimo ritardo sincrono di livello 1 aRsl(E,R + 1) = FormattaStringa(nRSL,"000") aRit(E,R + 1) = FormattaStringa(Rit,"000") m = m + 1 ReDim Preserve aRslrip(m) ReDim Preserve aRitrip(m) aRslrip(m) = nRSL aRitrip(m) = Rit Else aRsl(E,R + 1) = "---"' aRit(E,R + 1) = "---"' End If ' nLiv=1 ' cerco se ci sono medesimi ritardi Sincroni di livello ReDim aNsinc(0),aQsinc(0) Call NumeriRipetutiRilevatiV(aRslrip,aNsinc,aQsinc) If UBound(aNsinc) > 0 Then aRsl(E,13) = StringaNumeri(aNsinc) End If ' cerco se ci sono medesimi ritardi cronologici ReDim aNrit(0),aQrit(0) Call NumeriRipetutiRilevatiV(aRitrip,aNrit,aQrit) If UBound(aNrit) > 0 Then aRit(E,13) = StringaNumeri(aNrit) End If Next ' aRuote Next ' E Scrivi "Massimo Ritardo sincrono di livello 1: E:" & Format2(nSincMax) & " R: " & RSincMax & " Rsl: " & RitSincMax Scrivi "Tabella Estratti con Medesimo RSL" Call GetTabellaSincroni(aRsl,aRit) Scrivi "Tabella Estratti con Medesimo RC" Call GetTabellaRitardi(aRsl,aRit) End Sub Sub RitSincDiLiv2(NumeroAnalizzato,Ruota,idEstrFin,Rit,nRSL,nLiv,sNumSinc) Dim idTemp,idPrima Dim idEstr Dim p Dim aN(1) Dim aR(1) Dim aSinc(5) aN(1) = NumeroAnalizzato aR(1) = Ruota idEstr = SerieUltima(1,idEstrFin,aN,aR,1) Rit = idEstrFin - idEstr ReDim aE(0) Call GetArrayNumeriRuota(idEstr,aR(1),aE) If UBound(aE) = 0 Then Rit = 0 ' nRSL = 0 ' nLiv = 0 ' sNumSinc = "-- -- -- -- --" Else nLiv = 0 idTemp = 0 For p = 1 To 5 aN(1) = aE(p) If SerieUltima(idEstr,idEstrFin,aN,aR,1) = idEstr Then nLiv = nLiv + 1 aSinc(p) = aN(1) Else aSinc(p) = "--" idPrima = SeriePrima(idEstr + 1,idEstrFin,aN,aR,1) If idTemp < idPrima Then idTemp = idPrima End If Next If idTemp = 0 Then idTemp = idEstr ' questo se nessun estratto è caduto nRSL = idEstrFin - idTemp ' questo calcola il ritardo di livello ;-) sNumSinc = StringaNumeri(aSinc," ",True) End If End Sub Sub GetTabellaSincroni(aRsl,aRit) Dim aTit,E,id aTit=Array(0,"Estratto","Bari","Cagliari","Firenze","Genova","Milano","Napoli","Palermo","Roma","Torino","Venezia","Nazionale","RSL Convergente") Call InitTabella(aTit) For E = 1 To UBound(aRsl) If aRsl(E,13) <> "" Then ReDim aTab(13) aTab(1) = aRsl(E,1) For id = 2 To UBound(aRsl,2) - 1 If aRsl(E,id) <> "---" Then aTab(id) = "RSL: ( " & aRsl(E,id) & ") Rc:[" & aRit(E,id) & "]" End If Next aTab(13) = aRsl(E,13) Call AddRigaTabella(aTab) End If Next Call CreaTabella()
End Sub Sub GetTabellaRitardi(aRsl,aRit) Dim aTit,E,id aTit=Array(0,"Estratto","Bari","Cagliari","Firenze","Genova","Milano","Napoli","Palermo","Roma","Torino","Venezia","Nazionale","RC Convergente") Call InitTabella(aTit) For E = 1 To UBound(aRit) If aRit(E,13) <> "" Then ReDim aTab(13) aTab(1) = aRit(E,1) For id = 2 To UBound(aRit,2) - 1 If aRit(E,id) <> "---" Then aTab(id) = "RSL: ( " & aRsl(E,id) & ") Rc:[" & aRit(E,id) & "]" End If Next aTab(13) = aRit(E,13) Call AddRigaTabella(aTab) End If Next Call CreaTabella()
End Sub Ciao
|