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.
09-10-2016, 20:37
---------------------------------------------------------------------
Le mie Combinazioni in evidenza:
nata all'estraz.n. 9221
Genova 35 - Napoli 54 - Roma 56
rit.tab.002
previsione durata mese di Ottobre.
---------------------------------------------------------------------
ruota fissa BARI
ritardo 24
combinazione 51 69
nata estraz.n. 9198
ambi secchi 45 51 * 01 51 * 51 82
ambi secchi 01 69 * 68 69 * 46 69
SeiDue3;n2013421 ha scritto:Complimenti Nancy48 per questa tua prova; anch'io pensavo fare una ricerca di questo tipo in alcuni mesi di quest'anno su Ca ed altre ruote . Ciaooo
Option Explicit
Sub Main
Dim last,gen,xy,y,ct,fine,nr,rt,rit,fre,retrit,retritmax
ReDim aV2(0),ruote(10),numeri(15)
gen = InputBox("Numeri e ruote",,"31.01:80.07:75.10")
fine = InputBox("Estrazione n.",,EstrazioneFin)
Scrivi " Situazione periodo Estrazioni n." & EstrazioneIni & "/" & DataEstrazione(EstrazioneIni) & " : " & fine & " / " & DataEstrazione(fine),1
Call SplitByChar(gen,":",aV2)
last = UBound(aV2)
For y = 0 To last
rt = Right(aV2(y),2)
nr = Left(aV2(y),2)
'''carica array ruote e numeri
ruote(y + 1) = rt
numeri(y + 1) = nr
rit = EstrattoRitardoTurbo(rt,nr,estrazioneini,fine)
fre = EstrattoFrequenzaTurbo(rt,nr,estrazioneini,fine)
Scrivi Format2(nr) & " " & SiglaRuota(rt) & "....Rae." & rit & " ....Fre." & fre
Next
ct = ct + 1
Call StatisticaFormazioneTurbo(numeri,ruote,1,retrit,retritmax,,,estrazioneini,fine)
Scrivi " Rit./Ritmax a ruote unite.." & retrit & " / " & retritmax
End Sub
Option Explicit
' questo oggetto riceve i parametri necssari per creare la piramide dei ritardi comulati
Class clsPiramide
' variabili visibili solo dentro la classe
Private aNum ' contiene i numeri con cui la piramide viene calcolata
Private nSorte ' contiene il valore che indica la sorte a cui si riferisce la piramide
Private nClasseFrz ' classe formazione
Private idEstr ' contiene l'id estrazione a ci si riferisce la piramide
Private aRitPerRuota ' matrice a 2 dimensioni contiene i ritardi calcolati su ciascuna ruota
' è ordinata automaticamente quindi la ruota va letta dall'indice 0
' dell'elemento corrente , il ritardo dall'indice 1
Dim Tit(32) ' titoli della tabella
Dim aGriglia(10,32,1) ' contiene i valori che verranno stampati nella griglia
' 10 righe , 14 colonne , all'indice 0 la ruota
' all'indice 1 il valore
' le colonne da 11 a 14 non hanno ruota
Private nRigaG,nColonnaG ' usate per leggere la proprieta ValoreGriglia
' è una proprieta di sola lettura ritorna il ritardo piu alto sulle ruote
Public Property Get RitPiuAlto
' dato che la matrice è ordinata mi interessa l'indice 1
RitPiuAlto = aRitPerRuota(1,1)
End Property
' è una proprieta di sola lettura ritorna la ruota al ritardo piu alto sulle ruote
Public Property Get RuotaRitPiuAlto
' dato che la matrice è ordinata mi interessa l'indice 1
RuotaRitPiuAlto = aRitPerRuota(1,0)
End Property
' è una proprieta di sola lettura ritorna il valore dalla matrice aGriglia alle coordinate previste
' il valore si trova all'indice 1
Public Property Get ValoreGriglia
ValoreGriglia = aGriglia(nRigaG,nColonnaG,1)
End Property
' serve ad inizializzare l'oggetto con i parametri necessari
' va lanciata dopo aver istanziato la classe
Sub Init(aN,nS,nC,idE,nRG,nCG)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''PER CLASSIFICA GENERALE
Dim r
' assumo i parametri memorizzandoli nelle var locali
aNum = aN
nSorte = nS
idEstr = idE
nClasseFrz = nC
nRigaG = nRG
nColonnaG = nCG
' inizializzo i valori per creare la tabella
For r = 1 To 10 : Tit(r) = FormatSpace(r,2,True) & "° Rit" : Next
Tit(11) = "Minimo" : Tit(12) = "Somma"
Tit(13) = "Rit Nat" : Tit(14) = "Min/RN" : Tit(15) = "RMxSto":Tit(16) = "RIncrMx":Tit(17) = "1°Ed ":Tit(18) = "2°Ed ":Tit(19) = "3°Ed ":Tit(20) = "4°Ed ":Tit(21) = "5°Ed. ":Tit(22) = "1°Eds ":Tit(23) = "2°Eds ":Tit(24) = "3°Eds ":Tit(25) = "4°Eds ":Tit(26) = "5°Eds "
Tit(27) = " % ":Tit(28) = "Freq.":Tit(29) = "RRifMx/SomRx":Tit(30) = "nRuote":Tit(31) = "Data Max":Tit(32) = " Mult R.N."
' creo la piramide che rimane ancora un oggetto virtuale in memoria
CreaTabellaPiramide
' alimento i dati della griglia
AlimentaMatriceGriglia
End Sub
' sub privata visibile solo dentro la classe
' crea la piramide con i parametri forniti (numeri ruota estrazione)
' ordina la matrice dei ritardi per ruota
Private Sub CreaTabellaPiramide()
Dim r,i
ReDim aRitPerRuota(11,1)
ReDim aRuote(1)
i = 0
For r = 1 To 12
If r <> 11 Then
i = i + 1
aRuote(1) = r
aRitPerRuota(i,0) = r
aRitPerRuota(i,1) = RitardoCombinazioneTurbo(aRuote,aNum,nSorte,idEstr)
End If
Next
Call OrdinaMatrice(aRitPerRuota,- 1,1)
End Sub
Private Sub AlimentaMatriceGriglia
Dim k,a,b,c,t,x
For c = 1 To 10
t = 0
For x = c To 1 Step - 1
aGriglia(c,x,0) = SiglaRuota(aRitPerRuota(x,0))
aGriglia(c,x,1) = aRitPerRuota(x,1)
t = t + aRitPerRuota(x,1)
Next
a = aRitPerRuota(c,1) : b = CicloTeorico(nClasseFrz,nSorte,Int(c))
aGriglia(c,11,1) = a
aGriglia(c,12,1) = t
aGriglia(c,13,1) = b
aGriglia(c,14,1) = Dividi(a,b)
Next
End Sub
Function GetValoreGriglia(nRiga,nColonna)
GetValoreGriglia = CDbl(aGriglia(nRiga,nColonna,1))
End Function
Function GetRuotaGriglia(nRiga,nColonna)
GetRuotaGriglia = aGriglia(nRiga,nColonna,0)
End Function
Sub PrintOut
Dim c,x,rae,rax,retrit,retritmax,qt,lim,po,retfre,RetIncrRitMax,m,Retesito,retcolpi,retestratti,retidestr,ax,record,o
Dim aretritardi,aretidestr,lastx,max,maxdata,j,sm,ritardoes,i
ColoreTesto(2)
Call Scrivi("Inserire le lunghette per la sorte di Estratto, le ruote con ritardo maggiore sono le migliori per R.Fisse",True)
Call Scrivi("il ritardo comparato con Ritardo Max quando è vicino max 2 colpi, identifica la lunghetta buona per il gioco",True)
Call Scrivi("Numeri : " & StringaNumeri(aNum,"."),True)
ColoreTesto(0)
Call Scrivi("Sorte : " & NomeSorte(nSorte))
InitTabella(Tit)
SetTableWidth("95%px")
ReDim aV(32),aru(1),ruo(10)
For c = 1 To 10
For x = 1 To 32
If x <= 10 Then
aV(x) = aGriglia(c,x,0) & " " & FormatSpace(aGriglia(c,x,1),5,True)
If aGriglia(c,x,0) = "BA" Then
ruo(x) = 1
End If
If aGriglia(c,x,0) = "CA" Then
ruo(x) = 2
End If
If aGriglia(c,x,0) = "FI" Then
ruo(x) = 3
End If
If aGriglia(c,x,0) = "GE" Then
ruo(x) = 4
End If
If aGriglia(c,x,0) = "MI" Then
ruo(x) = 5
End If
If aGriglia(c,x,0) = "NA" Then
ruo(x) = 6
End If
If aGriglia(c,x,0) = "PA" Then
ruo(x) = 7
End If
If aGriglia(c,x,0) = "RO" Then
ruo(x) = 8
End If
If aGriglia(c,x,0) = "TO" Then
ruo(x) = 9
End If
If aGriglia(c,x,0) = "VE" Then
ruo(x) = 10
End If
If aGriglia(c,x,0) = "NZ" Then
ruo(x) = 12
End If
Else
aV(x) = Round(aGriglia(c,x,1),2)
End If
Next
If nSorte = 2 Then
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''calcola da elencoritarditurbo il max ottenuto sulle ruote e data di quando è avvenuto
Call ElencoRitardiTurbo(aNum,ruo,nSorte,3950,idEstr,aretritardi,aretidestr)
lastx = UBound(aretritardi)
max = 0 : maxdata = ""
For j = 1 To lastx
If aretritardi(j) > max Then
max = aretritardi(j)
maxdata = aretidestr(j)
End If
Next
''''calcola somma ritardi all'estrazione del max
sm = 0
ReDim aru(1)
For i = 1 To 10
aru(1) = i
ritardoes = RitardoCombinazioneTurbo(aru,aNum,nSorte,maxdata,,,3950)
sm = sm + ritardoes
Next
aV(31) = maxdata
aV(30) = c
' aV(29) = max
aV(29) = sm
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''calcola ritardo max combinazione su ruote unite
Call StatisticaFormazioneTurbo(aNum,ruo,nSorte,retrit,retritmax,RetIncrRitMax,retfre,3950,idEstr)
If retrit >= retritmax Then
ColoreTesto(7)
Else
ColoreTesto(0)
End If
Scrivi StringaNumeri(aNum,".") & " n.Ruote.." & Format2(c) & " : " & StringaNumeri(ruo,"/") & " Rae : Rit.Max Ruote Unite..." & retrit & " / " & retritmax & " Incr. " & RetIncrRitMax,1
aV(15) = retritmax
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
aV(28) = retfre
aV(16) = RetIncrRitMax
aV(27) = Round((100/retritmax) * retrit,1)
If aV(14) > 0 Then
aV(32) = Round(aV(14)/aV(13),3)
Else
aV(32) = 0
End If
'''''''verifica esiti nei 6 colpi successivi per quelli con % >= 90%
If aV(27) >= 90 Then
Call VerificaEsitoTurbo(aNum,ruo,idEstr + 1,nSorte,18,,Retesito,retcolpi,retestratti,retidestr)
If Retesito <> "" Then
ColoreTesto(1)
Scrivi idEstr + 1 & "/" & retidestr & " " & StringaNumeri(aNum,".") & " " & StringaNumeri(ruo,"-") & " " & retestratti & " colpo n." & retcolpi,1
End If
ColoreTesto(0)
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''calcola quante uscite nelle 5 posizioni (Presenze ruote Unite e presenze storiche)
ReDim apos(5),pd(5),ar(1),pds(5)
qt = UBound(aNum)
lim = 900/qt
For po = 1 To 5
apos(po - 1) = False
apos(po) = True
Call StatisticaFormazioneTurbo(aNum,ruo,1,retrit,retritmax,,retfre,idEstr - lim,idEstr,,apos)
pd(po) = retfre
Call StatisticaFormazioneTurbo(aNum,ruo,1,retrit,retritmax,,retfre,3950,idEstr,,apos)
pds(po) = retfre
Next
aV(17) = pd(1)
aV(18) = pd(2)
aV(19) = pd(3)
aV(20) = pd(4)
aV(21) = pd(5)
aV(22) = pds(1)
aV(23) = pds(2)
aV(24) = pds(3)
aV(25) = pds(4)
aV(26) = pds(5)
If nSorte = 1 Then
''''''''''''''''''MxMaxRuoteRif
If c = 10 Then aV(29) = 14:aV(30) = 10
If c = 9 Then aV(29) = 15:aV(30) = 9
If c = 8 Then aV(29) = 16:aV(30) = 8
If c = 7 Then aV(29) = 19:aV(30) = 7
If c = 6 Then aV(29) = 22:aV(30) = 6
If c = 5 Then aV(29) = 30:aV(30) = 5
If c = 4 Then aV(29) = 37:aV(30) = 4
If c = 3 Then aV(29) = 53:aV(30) = 3
If c = 2 Then aV(29) = 80:aV(30) = 2
If c = 1 Then aV(29) = 100:aV(30) = 1
End If
Call AddRigaTabella(aV)
For m = 17 To 21
Call SetColoreCella(Int(m),RGB(221,221,221),vbBlack)
Next
For m = 22 To 26
Call SetColoreCella(Int(m),RGB(198,241,255),vbBlack)
Next
If aV(32) > 2 Then
Call SetColoreCella(32,RGB(128,128,255),vbWhite)
''''ACCUMULA ELENCO CON NUMERI AVENTI QUESTO PARAMETRO RICHIESTO
End If
If aV(16) >= 1 Then
Call SetColoreCella(16,RGB(254,252,188),vbBlack)
End If
If aV(12) >= 9750 Then
Call SetColoreCella(12,RGB(255,86,4),vbWhite)
End If
If aV(11) >= aV(15) Then
Call SetColoreCella(11,RGB(225,0,0),vbWhite)
Call SetColoreCella(15,RGB(225,0,0),vbWhite)
End If
If aV(27) >= 90 Then
Call SetColoreCella(27,RGB(0,187,0),vbWhite)
End If
If aV(11) >= aV(29) - 3 Then
Call SetColoreCella(29,RGB(88,88,137),vbWhite)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''classifica
record = FormattaStringa(aV(28),"00000") & " | "
record = record & FormattaStringa(aV(11),"0000") & " | "
record = record & FormattaStringa(aV(12),"0000") & " | " & aV(14) & " | " & StringaNumeri(aNum,".") & " | " & aV(15) & " | " & aV(27) & " | " & aV(29) & " | " & aV(30) & " | " & aV(31) & " | "
For o = 1 To 10
record = record & aV(o) & "-"
Next
Call ScriviFile("c:\temp\Classifica.txt",record)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
Next
Call CreaTabella
ColoreTesto(1)
aru(1) = aRitPerRuota(1,0)
Call StatisticaFormazioneTurbo(aNum,aru,nSorte,retrit,retritmax,,,3950,idEstr)
rae = retrit : rax = retritmax
Call Scrivi("calcolare cicloTeo (54/nclasse) : ")
Call Scrivi("1 Numero su 3 ruote vicino a rit.54 ",True)
Call Scrivi(">> 2 Numeri su 3 ruote vicino a rit.39",True)
Call Scrivi(">> 2 Numeri su 4 ruote vicino a rit.31",True)
Call Scrivi(">> 2 Numeri su 5 ruote vicino a rit.21",True)
Call Scrivi(">> 2 Numeri su 6 ruote vicino a rit.18",True)
Call Scrivi("3 Numeri su 3 ruote vicino a rit.18",True)
Call Scrivi("4 numeri su 3 ruote vicino a rit.18",True)
Call Scrivi("5 Numeri su 3 ruote vicino a rit.11",True)
Call Scrivi("6 numeri su 3 ruote vicino a rit.09",True)
ColoreTesto(2)
Call Scrivi("Ruota : " & SiglaRuota(aru(1)) & " Rae : " & FormattaStringa(rae,"000") & " Rax : " & FormattaStringa(rax,"000"))
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Scrivi " Ritardi da prendere in considerazione con esiti a breve",1
Scrivi " 2° Ambo rit. 2268",1
Scrivi " 3° Ambo rit. 1892",1
Scrivi " 4° Ambo rit. 1062",1
Scrivi " 5° Ambo rit. 0922",1
Scrivi " 6° Ambo rit. 0779",1
Scrivi " 7° Ambo rit. 0714",1
Scrivi " 8° Ambo rit. 0389",1
Scrivi " 9° Ambo rit. 0266",1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''classifica
record = FormattaStringa(aV(28),"00000") & " | "
record = record & FormattaStringa(aV(11),"0000") & " | "
record = record & FormattaStringa(aV(12),"0000") & " | " & aV(14) & " | " & StringaNumeri(aNum,".") & " | " & aV(15) & " | " & aV(27) & " | " & aV(29) & " | " & aV(30) & " | " & aV(31) & " | "
For o = 1 To 10
record = record & aV(o) & "-"
Next
Call ScriviFile("c:\temp\Classifica.txt",record)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ColoreTesto 0 : Scrivi "Script Rubino ",True : ColoreTesto 1
Scrivi " Per le coppie, Colonna Somma Ritardi, interessante quando il valore si aggira intorno a 240.",1
Scrivi " Es: 28 49 somma ritardi intorno a 242, uscì il 28 Centenario sulla ruota di BARI.",1
Scrivi " 5 COPPIE con somma ritardi superiori a 200",1
ColoreTesto(0)
End Sub
End Class
Sub Main
Dim nSorte,nClasse,nIdEstr,e,k,fine,cap,e2,qct,h,sfile,last,jj,rw,det
Dim aElemFormazione() ' colonne apparetenenti alla formazione selezionata
Dim clsP ' oggetto clsPiraide
Dim collColonne ' collection delle colonne
Dim nPrimeDaMostrare ' limite prime n piramidi da mostrare
Dim nRigaGriglia,nColGriglia ' usate per gestire l'ordinamento
Dim sTipoOrd ' ordinamento scelto
Dim ImizioStatMaxRapp
fine = InputBox("Estrazione n.",,EstrazioneFin)
cap = InputBox("Capogioco",,"*")
det = InputBox("Vuoi elenco Ambi Ritardo attuale al Top su più ruote ",,"NO")
' rw = CInt(InputBox("Ordina classifica per 1=FREQ 2=RITARDO 3=SOMMA ",,2))
nIdEstr = fine
nPrimeDaMostrare = 100 'gestendo le formazioni che potrebebro avere anche molte colonne
' impostiamo un limite per le prime N (ordinate)
ImizioStatMaxRapp = 3950
If nIdEstr < ImizioStatMaxRapp Then
ImizioStatMaxRapp = 1
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
sfile = "c:\temp\Classifica.txt" ' costruisce un percorso valido usando la dir temp dell'applicazione
Call EliminaFile(sfile) ' cancella eventualmente il file se gia esiste
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' sceglie una formazione
If ScegliNumeriAnalisi(aElemFormazione,nSorte,nClasse) Then
If ScegliOrdinamento(nRigaGriglia,nColGriglia,sTipoOrd) Then
Call Scrivi("Analisi all'estrazione " & GetInfoEstrazione(nIdEstr),True)
Call Scrivi("Piramidi ordinate per " & sTipoOrd,True)
If cap <> "*" Then Scrivi "Richiesto Capogioco.." & cap,1
Call Scrivi
Call InitCalcoloRappPiuAlti(aElemFormazione,nSorte,nClasse,ImizioStatMaxRapp,nIdEstr)
' Scrivi aElemFormazione,1
' predispongo l'array per i numeri da analizzare
ReDim aNum(nClasse)
' istanzio la collection che conterra tutte le colonne presenti nella formazione selezionata
Set collColonne = GetNewCollection
''''nessun capogioco richiesto quindi tutte le formazioni
If cap = "*" Then
' ciclo sugli elementi della formazione e istanzio per ognuno
' l'oggetto clsPiramide che poi aggiungo alla collection
For k = 1 To UBound(aElemFormazione)
' leggo i numeri della colonna corrente
For e = 1 To UBound(aNum)
aNum(e) = aElemFormazione(k,e)
Next
' istanzio l'oggetto clsPiramide
Set clsP = New clsPiramide
' inizializzo l'oggetto clsPiramide
' l'inizializzazione calcola internamente i valori della piramide
Call clsP.Init(aNum,nSorte,nClasse,nIdEstr,nRigaGriglia,nColGriglia)
' aggiungo l'oggetto nella collection
collColonne.Add(clsP)
Call AvanzamentoElab(1,UBound(aElemFormazione),k)
If ScriptInterrotto Then Exit For
Next
Else
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''per sorte = Ambo elabora script per ricercare ambi con somma ritardi > 9750 su 10 ruote
If det = "SI" Or det = "si" Then
If nSorte = 2 And qct = 0 Then
Dim fcolonne,fClasse,fk,fscolonna,fx,fj,frt,fs,fRitardo,fRitardoMax,fIncrRitMax,fFrequenza,fsomma,fy
Dim fnm(2),fnumeri(90)
fClasse = 2 :fs = 2
For fx = 1 To 90
fnumeri(fx) = fx
Next
fcolonne = SviluppoIntegrale(fnumeri,fClasse)
For fk = 1 To UBound(fcolonne)
fscolonna = ""
Call Messaggio(" Elaboro Sviluppo Ambi " & fk)
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,UBound(fcolonne),fk)
For fj = 1 To fClasse
fscolonna = fscolonna & Format2(fcolonne(fk,fj)) & " "
fnm(fj) = fcolonne(fk,fj)
Next
fsomma = 0 : qct = 1
ReDim far(1),frit(12)
For frt = 1 To 12
If frt <> 11 Then
far(1) = frt
Call StatisticaFormazione(fnm,far,fs,fRitardo,fRitardoMax,fIncrRitMax,fFrequenza)
frit(frt) = fRitardo
End If
Next
Call OrdinaMatrice(frit,- 1)
For fy = 1 To 10
fsomma = fsomma + frit(fy)
Next
If fsomma > 9750 Then
Scrivi StringaNumeri(fnm,".") & " somma...." & fsomma,1
End If
Next
End If
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' leggo i numeri della colonna corrente
For e2 = 1 To 90
ReDim aNum(2)
If e2 <> Int(cap) Then
aNum(1) = cap
aNum(2) = e2
nClasse = 2
' istanzio l'oggetto clsPiramide
Set clsP = New clsPiramide
' inizializzo l'oggetto clsPiramide
' l'inizializzazione calcola internamente i valori della piramide
Call clsP.Init(aNum,nSorte,nClasse,nIdEstr,nRigaGriglia,nColGriglia)
' aggiungo l'oggetto nella collection
collColonne.Add(clsP)
Messaggio(cap & " " & aNum(2))
If ScriptInterrotto Then Exit For
End If
Next
End If
' ordino la collection per la proprieta RitPiuAlto
' il valore della proprietà <RitPiuAlto> era stato calcolato in fase di inizializzazione dell'oggetto
' clsPiramide internamente alla classe
Call OrdinaItemCollection(collColonne,"ValoreGriglia",,,- 1)
' a questo punto nella collection <collColonne> abbiamo tutti gli oggetti clsPiramide ognuno rappresenta
' una colonna della formazione selezionata con tutti i suoi valori calcolati
' mostriamo in output le prime N piramidi
k = 0
For Each clsP In collColonne
Call clsP.PrintOut
Call Scrivi
k = k + 1
If k > nPrimeDaMostrare Then Exit For
Next
Set collColonne = Nothing
End If
End If
Call CloseFileHandle(sfile) ' chiudo l'handle al file
''''''leggi classifica
Dim atitolo(12),aris(12)
atitolo(1) = "Id"
atitolo(2) = "Combinazione"
atitolo(3) = "Ritardo"
atitolo(4) = "Somma Ritardo"
atitolo(5) = "Frequenza"
atitolo(6) = "Rit/Rnat"
atitolo(7) = "RMaxsto"
atitolo(8) = "MxMaxRtRif"
atitolo(9) = " % "
atitolo(10) = "n.ruote"
atitolo(11) = "R u o t e "
atitolo(12) = " D a t a Max "
SetTableWidth("100%px")
Call InitTabella(atitolo,2,"center",1.28,5,"Cambria")
Dim arighe()
Call LeggiRigheFileDiTesto(sfile,arighe)
last = UBound(arighe)
For jj = 0 To last
ReDim rV(12)
Call SplitByChar(arighe(jj)," | ",rV)
aris(1) = jj
aris(2) = rV(4)
aris(3) = rV(1)
aris(4) = rV(2)
aris(5) = rV(0)
aris(6) = rV(3)
aris(7) = rV(5)
aris(8) = rV(7)
aris(9) = rV(6)
aris(12) = rV(9)
aris(10) = rV(8)
aris(11) = rV(10)
Call AddRigaTabella(aris,Bianco_,"center",1)
If Int(aris(3)) >= Int(aris(7)) Then
Call SetColoreCella(3,RGB(255,43,149),vbWhite)
Call SetColoreCella(7,RGB(255,43,149),vbWhite)
End If
If Int(aris(3)) >= Int(aris(8)) - 3 Then
Call SetColoreCella(8,RGB(0,0,160),vbWhite)
End If
Next
Call CreaTabellaOrdinabile(4)
ColoreTesto(1)
Scrivi " Selezionare gli estratti che hanno queste caratteristiche:",1
Scrivi " 1° 12 Uscite aventi ritardo = 0 ",1
Scrivi " 2° Frequenza > di 5200 ",1
Scrivi " 3° Rif.MxMax => 0",1
End Sub
Function ScegliNumeriAnalisi(aElemFormazione,nSorte,nClasse)
If ScegliOpzione = 0 Then
ScegliNumeriAnalisi = ScegliNumeriManuale(aElemFormazione,nSorte,nClasse)
Else
ScegliNumeriAnalisi = RichiediFormazione(aElemFormazione,nSorte,nClasse)
End If
End Function
Function ScegliOpzione
Dim i
ReDim aVoci(1)
aVoci(0) = "Inserimento numeri manuale"
aVoci(1) = "Selezione da formazione"
i = ScegliOpzioneMenu(aVoci,0)
ScegliOpzione = i
End Function
Function ScegliNumeriManuale(aElemFormazione,nSorte,nClasse)
ReDim aNum(0)
Dim nQ,k,n
nQ = ScegliNumeri(aNum)
If nQ > 0 Then
ReDim aElemFormazione(1,nQ)
For k = 1 To nQ
aElemFormazione(1,k) = aNum(k)
Next
nClasse = nQ
n = CInt(InputBox("Sorte ",,1))
If n <= nClasse Then
nSorte = n
ScegliNumeriManuale = True
Else
MsgBox "I punti da realizzare non possono essere superiori alla classe",vbCritical
End If
End If
End Function
Function RichiediFormazione(aElemFormazione,nRetPuntiDaFare,nRetClasseFrz)
Dim s
Dim n
Dim id
ReDim aNomiForm(0)
Call ElencoFileInDirectory(GetDirectoryAppData & "formazioni\",aNomiForm,".frz")
id = ScegliOpzioneMenu(aNomiForm,1,"Selezione formazione")
If GetElementiFormazione(aNomiForm(id),aElemFormazione) Then
n = CInt(InputBox("Sorte ",,1))
nRetClasseFrz = GetClasseFormazione(aNomiForm(id))
If n <= nRetClasseFrz Then
nRetPuntiDaFare = n
RichiediFormazione = True
Else
MsgBox "I punti da realizzare non possono essere superiori alla classe della formazione",vbCritical
End If
End If
End Function
Function ScegliOrdinamento(RetRiga,RetColonna,sRetOrd)
Dim k,r,i
ReDim av(290)
av(0) = "Ritardo più alto"
For r = 1 To 10
For k = 1 To 29
i = i + 1
If k <= 10 Then
av(i) = "Ruote - " & r & " -PosClass -" & k
ElseIf k = 11 Then
av(i) = "Ruote - " & r & " -Minimo"
ElseIf k = 12 Then
av(i) = "Ruote - " & r & " -Somma"
ElseIf k = 13 Then
av(i) = "Ruote - " & r & " -RitardoNat"
ElseIf k = 14 Then
av(i) = "Ruote - " & r & " -Min/RitNat"
ElseIf k = 15 Then
av(i) = "Ruote - " & r & " -Rmax "
ElseIf k = 16 Then
av(i) = "Ruote - " & r & " -RIncrMx "
ElseIf k = 17 Then
av(i) = "Ruote - " & r & " -1° Ed."
ElseIf k = 18 Then
av(i) = "Ruote - " & r & " -2° Ed."
ElseIf k = 19 Then
av(i) = "Ruote - " & r & " -3° Ed."
ElseIf k = 20 Then
av(i) = "Ruote - " & r & " -4° Ed."
ElseIf k = 21 Then
av(i) = "Ruote - " & r & " -5° Ed."
ElseIf k = 22 Then
av(i) = "Ruote - " & r & " -1°Eds."
ElseIf k = 23 Then
av(i) = "Ruote - " & r & " -2°Eds."
ElseIf k = 24 Then
av(i) = "Ruote - " & r & " -3°Eds."
ElseIf k = 25 Then
av(i) = "Ruote - " & r & " -4°Eds."
ElseIf k = 26 Then
av(i) = "Ruote - " & r & " -5°Eds."
ElseIf k = 27 Then
av(i) = "Ruote - " & r & " % "
ElseIf k = 28 Then
av(i) = "Ruote - " & r & "Freq."
ElseIf k = 29 Then
av(i) = "Ruote - " & r & "n.Ruote"
ElseIf k = 30 Then
av(i) = "Ruote - " & r & " D a t a "
End If
Next
Next
i = ScegliOpzioneMenu(av,0)
sRetOrd = ""
RetRiga = 0
RetColonna = 0
If i > 0 Then
sRetOrd = av(i)
ReDim v(0)
Call SplitByChar(av(i),"-",v)
RetRiga = Int(v(1))
If InStr(av(i),"PosClass") > 0 Then
RetColonna = Int(v(3))
ElseIf InStr(av(i),"Minimo") > 0 Then
RetColonna = 11
ElseIf InStr(av(i),"Somma") > 0 Then
RetColonna = 12
ElseIf InStr(av(i),"RitardoNat") > 0 Then
RetColonna = 13
ElseIf InStr(av(i),"Min/RitNat") > 0 Then
RetColonna = 14
ElseIf InStr(av(i),"RMax ") > 0 Then
RetColonna = 15
ElseIf InStr(av(i),"RIncrMx") > 0 Then
RetColonna = 16
ElseIf InStr(av(i),"1° Ed.") > 0 Then
RetColonna = 17
ElseIf InStr(av(i),"2° Ed.") > 0 Then
RetColonna = 18
ElseIf InStr(av(i),"3° Ed.") > 0 Then
RetColonna = 19
ElseIf InStr(av(i),"4° Ed.") > 0 Then
RetColonna = 20
ElseIf InStr(av(i),"5° Ed.") > 0 Then
RetColonna = 21
ElseIf InStr(av(i),"1°Eds. ") > 0 Then
RetColonna = 22
ElseIf InStr(av(i),"2°Eds. ") > 0 Then
RetColonna = 23
ElseIf InStr(av(i),"3°Eds. ") > 0 Then
RetColonna = 24
ElseIf InStr(av(i),"4°Eds. ") > 0 Then
RetColonna = 25
ElseIf InStr(av(i),"5°Eds. ") > 0 Then
RetColonna = 26
ElseIf InStr(av(i)," % ") > 0 Then
RetColonna = 27
ElseIf InStr(av(i),"Freq.") > 0 Then
RetColonna = 28
ElseIf InStr(av(i),"n.Ruote") > 0 Then
RetColonna = 29
ElseIf InStr(av(i)," D a t a ") > 0 Then
RetColonna = 30
End If
ElseIf i = 0 Then
sRetOrd = av(i)
RetRiga = 1
RetColonna = 1
End If
If RetRiga > 0 And RetColonna > 0 Then
ScegliOrdinamento = True
End If
End Function
Sub CalcolaValoriPiuAltiAssoluti(aElemFormazione,nClasse,nSorte,Inizio,Fine,aRetValori,nIdColValCerc)
Dim k,e,r
Dim clsP
Dim idEstr
Dim nMaxRapp
ReDim aRetValori(10,2) ' all'indice 0 l'estrazione dell'evento
' all'indice 1 il valore riscontrato
' all'indice 2 i numeri
Set clsP = New clsPiramide
ReDim aNum(nClasse)
For k = 1 To UBound(aElemFormazione)
Call Messaggio("Colonna " & k)
' leggo i numeri della colonna corrente
For e = 1 To UBound(aNum)
aNum(e) = aElemFormazione(k,e)
Next
For idEstr = Inizio To Fine
Call clsP.Init(aNum,nSorte,nClasse,idEstr,0,0)
For r = 1 To 10
If clsP.GetValoreGriglia(r,nIdColValCerc) > aRetValori(r,1) Then
aRetValori(r,1) = clsP.GetValoreGriglia(r,nIdColValCerc)
aRetValori(r,0) = idEstr
aRetValori(r,2) = StringaNumeri(aNum)
End If
Next
If idEstr Mod 10 = 0 Then
Call AvanzamentoElab(Inizio,Fine,idEstr)
If ScriptInterrotto Then Exit For
End If
Next
If ScriptInterrotto Then Exit For
Next
Set clsP = Nothing
End Sub
Sub InitCalcoloRappPiuAlti(aElemFormazione,nSorte,nClasse,Inizio,Fine)
Dim k
' If MsgBox("Creare la tabellina dei rapporti massimi ?",vbQuestion + vbYesNo) = vbYes Then
ReDim aRetValori(10,2)
Call CalcolaValoriPiuAltiAssoluti(aElemFormazione,nClasse,nSorte,Inizio,Fine,aRetValori,14)
ReDim aV(4)
aV(1) = "Q.Ruote"
aV(2) = "Rapporto"
aV(3) = "Estrazione"
aV(4) = "Numeri"
Call InitTabella(aV)
For k = 1 To 10
aV(1) = k
aV(2) = aRetValori(k,1)
aV(3) = aRetValori(k,0)
aV(4) = aRetValori(k,2)
Call AddRigaTabella(aV)
Next
Call CreaTabella
Call Scrivi
' End If
End Sub
Sub InitCalcoloSommwPiuAlti(aElemFormazione,nSorte,nClasse,Inizio,Fine)
Dim k
' If MsgBox("Creare la tabellina delle somme massime ?",vbQuestion + vbYesNo) = vbYes Then
ReDim aRetValori(10,2)
Call CalcolaValoriPiuAltiAssoluti(aElemFormazione,nClasse,nSorte,Inizio,Fine,aRetValori,12)
ReDim aV(4)
aV(1) = "Q.Ruote"
aV(2) = "Rapporto"
aV(3) = "Estrazione"
aV(4) = "Numeri"
Call InitTabella(aV)
For k = 1 To 10
aV(1) = k
aV(2) = aRetValori(k,1)
aV(3) = aRetValori(k,0)
aV(4) = aRetValori(k,2)
Call AddRigaTabella(aV)
Next
Call CreaTabella
Call Scrivi
' End If
End Sub
[/code