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.
wonderful wonderful wonderful
tom's bakery is magic
Script n. 39 meraviglioso per la mia gola di statistica... si puo avere il bis
un 39 bis con i risultati su ruote scelte unite.
grande 75 grande 39
un saluto
ho sbagliato azz e' il 37 che sto usando si potrebbe avere il bis con ruote unite
scusa tom
Option Explicit
Dim aNumUsati
Dim aColonne
Dim aNumScelti
Sub Main
Dim nLato,nScelti
Const nMinLato = 2
Const nMaxLato = 12
ReDim aRuote(1)
ReDim aPoste(2)
Dim Sorte,Colpi
Dim idEstr
Dim RuotaDiRil
RuotaDiRil = BA_
aPoste(2) = 1
aRuote(1) = RuotaDiRil
Sorte = 2
Colpi = 1
nLato = 5
nLato = Int(InputBox("Inserire la quantita di numeri per il lato del cruciverba","Lato Cruciverba",nLato))
If nLato < nMinLato Or nLato > nMaxLato Then
MsgBox "Il lato dve essere compreso tra " & nMinLato & " e " & nMaxLato
Exit Sub
End If
ReDim aDiagonali(nLato,nLato)
Call CalcolaDiagonali(aDiagonali,nLato)
For idEstr = EstrazioneIni To EstrazioneFin Step Colpi
Call Messaggio("Estrazione " & idEstr)
ReDim aNumScelti(0)
Call AlimentaNumScelti(aNumScelti,idEstr,RuotaDiRil,nLato)
Call GiocaCruciverba(aNumScelti,nLato,aDiagonali,aRuote,aPoste,Colpi,Sorte,idEstr)
If ScriptInterrotto Then Exit For
Next
Call ScriviResoconto
End Sub
Sub AlimentaNumScelti(aNumScelti,idEstr,RuotaDiRil,nLato)
Dim k,e,n,t
Dim nNumDaTrov
ReDim aB(90)
t = 0
nNumDaTrov = nLato * nLato
For k = idEstr To 1 Step - 1
For e = 1 To 5
n = Vert(Estratto(k,RuotaDiRil,e))
If aB(n) = False Then
aB(n) = True
t = t + 1
If t >= nNumDaTrov Then Exit For
End If
Next
If t >= nNumDaTrov Then Exit For
Next
If t >= nNumDaTrov Then
ReDim aNumScelti(t)
t = 0
For k = 1 To 90
If aB(k) Then
t = t + 1
aNumScelti(t) = k
End If
Next
End If
End Sub
Sub GiocaCruciverba(aNumScelti,nLato,aDiagonali,aRuote,aPoste,Colpi,Sorte,idEstr)
Dim r,c,k
Dim n
Dim s
Dim nTentativi
Dim bTrovato
Dim nScelti
Dim bUnaPresenzaSola
Const nTentativiMax = 1000
bUnaPresenzaSola = False
nScelti = UBound(aNumScelti)
If nScelti >= nLato * nLato Then
bUnaPresenzaSola = True
End If
Call DoEventsEx
aNumUsati = ArrayNumeriToBool(aNumScelti)
Do While bTrovato = False
ReDim aNumeri(nLato,nLato)
For r = 1 To nLato
For c = 1 To nLato
n = ScegliNumero(r,c,aNumeri,nLato,aDiagonali,bUnaPresenzaSola)
If n = 0 Then Exit For
aNumeri(r,c) = n
Next
If n = 0 Then Exit For
Next
If colonneDuplicate(aNumeri,nLato,aDiagonali) = False Then
bTrovato = True
Else
nTentativi = nTentativi + 1
If nTentativi > nTentativiMax Then Exit Do
End If
If ScriptInterrotto Then Exit Do
Call Messaggio("Cruciverba Generati " & nTentativi)
DoEventsEx
Loop
For r = 1 To nLato
ReDim aV(nLato)
For c = 1 To nLato
aV(c) = Format2(Int(aNumeri(r,c)))
Next
If r = 1 Then
Call InitTabella(aV,,,6)
Else
Call AddRigaTabella(aV,,,6)
End If
Next
If nTentativi > nTentativiMax Or colonneDuplicate(aNumeri,nLato,aDiagonali) Then
Call Scrivi("ATTENZIONE CRUCIVERBA NON VALIDO",True,,,vbRed)
Else
Call CreaTabella
End If
For k = 1 To UBound(aColonne)
ReDim aN(0)
Call SplitByChar("0." & aColonne(k),".",aN)
Call ImpostaGiocata(k,aN,aRuote,aPoste,Colpi,Sorte)
Next
Call Gioca(idEstr)
End Sub
Sub CalcolaDiagonali(aDiagonali,nLato)
Dim r,c
For r = 1 To nLato
c = c + 1
aDiagonali(r,c) = True
Next
c = nLato + 1
For r = 1 To nLato
c = c - 1
If aDiagonali(r,c) Then
aDiagonali(r,c) = 1
Else
aDiagonali(r,c) = True
End If
Next
End Sub
Function ScegliNumero(Riga,Colonna,aNumeri,nLato,aDiagonali,bUnaVoltaSola)
Dim n
Dim nPassaggi
Do
n = aNumScelti(NumeroCasuale(1,UBound(aNumScelti)))
nPassaggi = nPassaggi + 1
If nPassaggi > 1000 Then
n = 0
Exit Do
End If
If ScriptInterrotto Then
n = 0
Exit Do
End If
Call DoEventsEx
Loop While NumeroNonValido(n,Riga,Colonna,aNumeri,nLato,aDiagonali,bUnaVoltaSola)
ScegliNumero = n
End Function
Function NumeroNonValido(Numero,Riga,Colonna,aNumeri,nLato,aDiagonali,bUnaVoltaSola)
Dim k,r,c
If Numero = 0 Then
NumeroNonValido = True
Exit Function
End If
If bUnaVoltaSola Then
For r = 1 To nLato
For c = 1 To nLato
If aNumeri(r,c) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
Next
End If
If aNumUsati(Numero) = False Then
NumeroNonValido = True
Exit Function
End If
For k = 1 To nLato
If aNumeri(Riga,k) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
For k = 1 To nLato
If aNumeri(k,Colonna) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
If aDiagonali(Riga,Colonna) Then
'If Riga = Colonna Or ((Riga = nLato/2)And (Colonna = nLato/2)) Then
If Riga = Colonna Then
c = Colonna + 1
For r = Riga To 1 Step - 1
c = c - 1
If aNumeri(r,c) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
c = Colonna - 1
For r = Riga + 1 To nLato
c = c + 1
If aNumeri(r,c) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
End If
If Riga <> Colonna Or aDiagonali(Riga,Colonna) = 1 Then
c = Colonna - 1
For r = Riga To 1 Step - 1
c = c + 1
If aNumeri(r,c) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
c = Colonna + 1
For r = Riga + 1 To nLato
c = c - 1
If aNumeri(r,c) = Numero Then
NumeroNonValido = True
Exit Function
End If
Next
End If
End If
End Function
Function colonneDuplicate(aNumeri,nLato,aDiagonali)
Dim nColonneTot
Dim r,c,i
Dim k,kk
nColonneTot = nLato * 2 + 2
ReDim aColonne(nColonneTot)
For r = 1 To nLato
ReDim aN(nLato)
For c = 1 To nLato
aN(c) = aNumeri(r,c)
Next
i = i + 1
Call OrdinaMatrice(aN,1,1)
aColonne(i) = StringaNumeri(aN,,True)
Next
For c = 1 To nLato
ReDim aN(nLato)
For r = 1 To nLato
aN(r) = aNumeri(r,c)
Next
i = i + 1
Call OrdinaMatrice(aN,1,1)
aColonne(i) = StringaNumeri(aN,,True)
Next
ReDim aN(nLato)
c = 0
For r = 1 To nLato
c = c + 1
aN(r) = aNumeri(r,c)
Next
i = i + 1
Call OrdinaMatrice(aN,1,1)
aColonne(i) = StringaNumeri(aN,,True)
ReDim aN(nLato)
c = nLato + 1
For r = 1 To nLato
c = c - 1
aN(r) = aNumeri(r,c)
Next
i = i + 1
Call OrdinaMatrice(aN,1,1)
aColonne(i) = StringaNumeri(aN,,True)
For k = 1 To nColonneTot - 1
For kk = k + 1 To nColonneTot
If aColonne(k) = aColonne(kk) Then
colonneDuplicate = True
Exit Function
End If
Next
Next
For k = 1 To nColonneTot
If Len(aColonne(k)) < nLato *2 +(nLato - 1) Then
colonneDuplicate = True
Exit Function
End If
Next
End Function
Sub SalvaFileColonne
Dim sFile
Dim k
sFile = GetDirectoryTemp & "Cruciverba.csv"
If EliminaFile(sFile) Then
For k = 1 To UBound(aColonne)
Call ScriviFile(sFile,Replace(aColonne(k),".",";"),,False)
Next
End If
Call Scrivi("Le colonne da giocare sono state salvate nel file : " & sFile)
End Sub
[/ code]
Option Explicit
Sub Main
' Script n. 40 tom's bakery x lotto by tom ; sviluppo e analisi in modo integrale con ordinamento per parametro 'voluto in classe <= 20 con rilevamento del 'numero di ' righe sviluppate in rapporto al numero desiderato di ruote 'unite a girare..., alla classe di sviluppo 'scelta e alla 'classe del gruppo base da sviluppare. Molto utile sopratutto in 'caso di matrici multidimensionali' da inizializzare con numero di righe fisso... Inoltre molto utile per effettuare 'complesse analisi multiruota.
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim diff
Dim contatorexmatrice
Dim contatorextabella
ReDim aTitoli(9)
aTitoli(1) = "Formazione"
aTitoli(2) = "Ruote"
aTitoli(3) = "Sorte"
aTitoli(4) = "Ritardo"
aTitoli(5) = "Ritardo Massimo"
aTitoli(6) = "Incremento di Ritardo Massimo"
aTitoli(7) = "Frequenza"
aTitoli(8) = "Diff"
aTitoli(9) = "Contatore"
Call InitTabella(aTitoli)
Dim righeoccupatenellamatrice
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,11))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,2))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,2))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
righesviluppate = InitSviluppoIntegrale(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
Do While GetCombSviluppo(rigasviluppata) = True
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
diff = ritmax - rit
contatorextabella = contatorextabella + 1
ReDim aValori(9) '
aValori(1) = StringaNumeri(rigasviluppata) ' numero
aValori(2) = StringaRuote(vettoreruoteunite) ' nome ruota
aValori(3) = sorte
aValori(4) = rit
aValori(5) = ritmax
aValori(6) = Incmax
aValori(7) = freq
aValori(8) = diff
aValori(9) = contatorextabella
Call AddRigaTabella(aValori,Giallo_,"right",3)
Call AvanzamentoElab(1,10000,contatorextabella)
Loop
End If
Next ' cvru
Next
If ScriptInterrotto Then Exit For
Next 'x numero ruote unite
contatorexmatrice = 0
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(1); ruote(2); sorte(3); rit(4) ; ritmax(5) ; incmax(6) ; freq(7) ; diff(8) ; contatore (9) ",,4))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (0) ",,0))
Scrivi
Scrivi "Prova visualizzazione del contenuto della tabella..."
Scrivi
Call CreaTabella(Valorediordinamentovoluto,Valorecriteriodiordinamento)
Scrivi
'-------------------------
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighe * righesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi
Scrivi
Scrivi "Tt : " & TempoTrascorso
End Sub
Option Explicit
' script n.41 tom's bakery x lotto by tom costruito con componenti di codice realizzati dagli amici luigib, ilegend , edoardo_95; questo script piuttosto complesso
'consente di effettuare analisi di tipo incmax per qualsivoglia classe di di formazione <= 20 , sorte e ruota desiderate; sia con che senza numeri fissi;
'inoltre riesce ad evidenziare mediante relativo filtro le condizioni con numero di incrementi maggiore e anche se vi sono casi doppi o multipli o meno....
'per abilitare il relativo alert vocale opzionale basta decommentare la relativa riga e mettere in c:\ o nel percorso desiderato (che sarà da cambiare in quel caso
'anche a livello della relativa riga di codice, un file .wav muto e nominarlo ad es. silenzio.wav
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
Private aritardiallincremento ' contiene il valore del ritardo all'idestrazione in cui
Private mritardo,mritardomax,mincrritmax,mfrequenza ' valori statistici
Private mincrritardomaxsto,mstrincritsto
Public Property Get inumincrementi
inumincrementi = UBound(aelencoincrritmax)
End Property
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
Sub init(slunghetta,schrsep,rangeinizio,rangefine,vetruote,sorteingioco)
minizio = rangeinizio
mfine = rangefine
aruote = vetruote
msorte = sorteingioco
Call alimentavettorelunghetta(slunghetta,schrsep)
Call ElencoRitardiTurbo(anumeri,aruote,msorte,minizio,mfine,aelencorit,aidestrelencorit)
Call alimentavettoreincrritmax
End Sub
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
ReDim anumeri(UBound(slunghetta))
For k = 1 To UBound(slunghetta)
anumeri(k) = slunghetta(k)
Next
Else
Call SplitByChar((schrsep & slunghetta),schrsep,anumeri)
End If
mclasse = UBound(anumeri)
End Sub
Private Sub alimentavettoreincrritmax
Dim nritmax,nincr,nid,k
nid = 0
ReDim aelencoincrritmax(0)
ReDim aidestrincrritmax(0)
ReDim aritardiallincremento(0)
aelencoincrritmax(0) = aelencorit(1) '<<< inserito il primo valore correttamente!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :-)
For k = 1 To UBound(aelencorit)
If aelencorit(k) > nritmax Then
If nritmax > 0 Then
nincr = aelencorit(k) - nritmax
nid = nid + 1
ReDim Preserve aelencoincrritmax(nid)
aelencoincrritmax(nid) = nincr
ReDim Preserve aidestrincrritmax(nid)
aidestrincrritmax(nid) = aidestrelencorit(k)
ReDim Preserve aritardiallincremento(nid)
aritardiallincremento(nid) = aelencorit(k)
End If
nritmax = aelencorit(k)
End If
Next
mstrincritsto = StringaNumeri(aelencoincrritmax,,True)
End Sub
Function iscondizionerispettata(nidfiltro,nqincr)
Dim nupper
Dim vetritornon
Dim vetritornoq
Dim x
Dim numerominimoincrementiattsto
numerominimoincrementiattsto = 2 '
nqincr = 2 '
nupper = UBound(aelencoincrritmax)
mincrritardomaxsto = MassimoV(aelencoincrritmax,0,nupper)' - 1)
If aelencorit(UBound(aelencorit)) > 0 And aidestrincrritmax(nupper) = mfine And nupper >= nqincr Then
Select Case nidfiltro
Case 0
Call NumeriRipetutiRilevatiV(aelencoincrritmax,vetritornon,vetritornoq)
For x = 0 To UBound(vetritornoq)
If(vetritornoq(x) >= numerominimoincrementiattsto And vetritornon(x) = mincrritardomaxsto And mincrritardomaxsto <= 1000) Then
iscondizionerispettata =(aelencoincrritmax(nupper) = mincrritardomaxsto)
End If
Next
Case 1
iscondizionerispettata =(aelencoincrritmax(nupper) >= mincrritardomaxsto)
Case 2
iscondizionerispettata =(aelencoincrritmax(nupper) <= mincrritardomaxsto)
End Select
Else
iscondizionerispettata = False
End If
End Function
Function trasformaarraynumvirtonumreal(idist,bprimaestrfiss)
Dim k,ntotestr,valvirt
Dim snumreal
snumreal = ""
ntotestr =((mfine - minizio) + 1)Mod 90
valvirt = Fuori90(ntotestr *idist)
For k = 1 To UBound(anumeri)
snumreal = snumreal & Format2(Fuori90(anumeri(k) + valvirt)) & "."
Next
snumreal = RimuoviLastChr(snumreal,".")
trasformaarraynumvirtonumreal = snumreal
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("formazione " & StringaNumeri(anumeri),nvaloreminx,nvaloremaxx,0,nvaloremaxy,nstepx,nstepy)
nuppervetincrrit = UBound(aelencoincrritmax)
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")
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")
End Sub
End Class
Sub Main
Dim filerisultanzaconnumeroincrementitop
filerisultanzaconnumeroincrementitop = ".\filerisultanzaconnumeroincrementitop.txt"
Dim filerisultanzaconnumeroincrementitopcasimultipli
filerisultanzaconnumeroincrementitopcasimultipli = ".\filerisultanzaconnumeroincrementitopcasimultipli.txt"
If FileEsistente(filerisultanzaconnumeroincrementitop) Then
Call EliminaFile(filerisultanzaconnumeroincrementitop)
End If
If FileEsistente(filerisultanzaconnumeroincrementitopcasimultipli) Then
Call EliminaFile(filerisultanzaconnumeroincrementitopcasimultipli)
End If
Dim numeroincrementitop
numeroincrementitop = 0
Dim filereportxgufinale
filereportxgufinale = ".\filereportxgufinale.txt"
If FileEsistente(filereportxgufinale) Then
Call EliminaFile(filereportxgufinale)
End If
Dim sdir,inizio,fine,sfile,sfilecompleto,aruote,sorte
Dim bok,idfiltro,qincr
Dim bprimaestrfissa,ndistanza
sdir = GetDirectoryAppData & "archivivirtuali\"
sfile = sceglifilearchiviovirt(sdir)
bprimaestrfissa = False
If sfile <> "" Then
sfilecompleto = sdir & sfile & ".dat"
bok = ApriFileBaseDati(sfilecompleto)
bprimaestrfissa = True
ndistanza = getvalorefraseparatori(sfile,"(",")")
Else
bok = True ' archivio normale
ndistanza = 0 ' archivio reale
End If
If bok Then
If ScegliRange(inizio,fine) Then
sorte = ScegliEsito(3)
Dim ruoteselezionate,k
ReDim aruotesel(12)
ruoteselezionate = ScegliRuote(aruotesel)
For k = 1 To ruoteselezionate
Call Scrivi("scelta ruota " & NomeRuota(aruotesel(k)) & " - " & SiglaRuota(aruotesel(k)))
Next
ReDim aruote(1)
idfiltro = getidfiltro
qincr = getquantiincrementi
If(fine > inizio) And UBound(aruote) > 0 And sorte > 0 And idfiltro > - 1 Then
Call Scrivi("archivio : " & Iif(sfile <> "",sfile,"archivio lotto"))
Select Case sceglitiposviluppo
Case 5
Dim nclasse,quantitanumeriscelti,av
nclasse = CInt(InputBox(" classe di sviluppo? ",,10))
Dim quantinumfissi
quantinumfissi = CInt(InputBox("quanti numeri fissi a girare vuoi? [min 0 e max 20 num. fissi]: ",,0))
Dim alunghette
Dim quantiequalinumbers
quantiequalinumbers = ScegliNumeri(alunghette)
If quantinumfissi = 0 Then
quantitanumeriscelti = 0
Else
quantitanumeriscelti = ScegliNumeri(av)
End If
For k = 1 To ruoteselezionate
aruote(1) = aruotesel(k)
Call analisilunghettefromsceglinumericonnumerifissi(inizio,fine,aruote,sorte,idfiltro,qincr,bprimaestrfissa,ndistanza,nclasse,quantitanumeriscelti,av,quantinumfissi,quantiequalinumbers,alunghette,filereportxgufinale,numeroincrementitop,filerisultanzaconnumeroincrementitop,filerisultanzaconnumeroincrementitopcasimultipli)
Next
End Select
End If
End If
End If
Call CloseFileHandle(filereportxgufinale)
Dim alunghetteok
Dim ntotlunghetteok
Scrivi
Scrivi "Report gu finale"
Scrivi
If FileEsistente(filereportxgufinale) Then
Call LeggiRigheFileDiTesto(filereportxgufinale,alunghetteok)
ntotlunghetteok = UBound(alunghetteok)
If ntotlunghetteok > 0 Then
For k = 0 To ntotlunghetteok
Scrivi alunghetteok(k)
Next
End If
End If
End Sub
Function sceglifilearchiviovirt(sdir)
Dim i
ReDim afile(0)
Call ElencoFileInDirectory(sdir,afile,".dat")
afile(0) = "archivio reale"
i = ScegliOpzioneMenu(afile,0,"scegli archivio virtuale")
If i > 0 Then
sceglifilearchiviovirt = afile(i)
Else
sceglifilearchiviovirt = ""
End If
End Function
Function sceglitiposviluppo
ReDim avoci(5)
avoci(1) = "da file .txt"
avoci(2) = "da file .col"
avoci(3) = "da selezione casuale"
avoci(4) = "da selezione utente"
avoci(5) = "da selezione utente con fissi"
sceglitiposviluppo = ScegliOpzioneMenu(avoci,5,"selezionasviluppo")
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
Function getidfiltro
Dim afiltro(2)
afiltro(0) = "aelencoincrritmax(nupper) = mincrritardomaxsto"
afiltro(1) = "aelencoincrritmax(nupper)>= mincrritardomaxsto"
afiltro(2) = "aelencoincrritmax(nupper)<= mincrritardomaxsto"
getidfiltro = ScegliOpzioneMenu(afiltro,0,"select filtro condizione")
End Function
Function scrivifiltro(idfiltro)
Select Case idfiltro
Case 0
scrivifiltro =("aelencoincrritmax(nupper) = mincrritardomaxsto")
Case 1
scrivifiltro =("aelencoincrritmax(nupper)>= mincrritardomaxsto")
Case 2
scrivifiltro =("aelencoincrritmax(nupper)<= mincrritardomaxsto")
End Select
End Function
Function getquantiincrementi
getquantiincrementi = 1
End Function
Function addlunghetta(colllunghette,clsl)
On Error Resume Next
colllunghette.Add clsl,"k" & clsl.lunghettastring
If Err = 0 Then
addlunghetta = True
Else
addlunghetta = False
End If
err.Clear
End Function
Function getvalorefraseparatori(sfile,charsep1,charsep2)
Dim k
Dim i,f,sval
i = InStr(1,sfile,charsep1) + 1
f = InStr(i,sfile,charsep2)
getvalorefraseparatori = Int(Mid(sfile,i,f - i))
End Function
Sub analisilunghettefromfiletxt(inizio,fine,aruote,sorte,idfiltro,qincr,bprimaestrfissa,ndistanza)
Dim sfile,alunghette,ntotlunghette
Dim k,schrsep,snumreal
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(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
End If
If k Mod 50 = 0 Then
Call Messaggio("righe esaminate : " & k & " valide: " & colllunghette.count)
Call AvanzamentoElab(1,ntotlunghette,k)
If ScriptInterrotto Then Exit For
End If
Next
Call Scrivi
Call Scrivi("elaborazione effettuata con archivio lotto aggiornato all'estrazione del: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call Scrivi
Scrivi "range analisi : " & GetInfoEstrazione(inizio) & " - " & GetInfoEstrazione(fine)
Scrivi "filtro esaminato : " & scrivifiltro(idfiltro)
Scrivi "lunghette esaminate : " & ntotlunghette & " valide : " & colllunghette.count
Scrivi "sorte : " & NomeSorte(sorte)
Scrivi "ruote : " & StringaRuote(aruote)
Scrivi "numero minimo incrrit : " & Format2(qincr)
Scrivi
Scrivi FormatSpace("lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If colllunghette.count > 0 Then
Call OrdinaItemCollection(colllunghette,"incrritmax",,,- 1)
For Each clsl In colllunghette
If ndistanza = 0 Then
Call Scrivi("numeri formazione : " & clsl.lunghettastring)
Else
snumreal = clsl.trasformaarraynumvirtonumreal(ndistanza,bprimaestrfissa)
Call Scrivi("numeri formazione : " & clsl.lunghettastring & " " & "numeri verifica : " & snumreal)
End If
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("strincrementi (incluso il 1â° ra) : " & clsl.strincritmaxsto)
Call Scrivi("numero incrementi effettivi : " & clsl.inumincrementi)
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 analisilunghettefromsceglinumericonnumerifissi(inizio,fine,aruote,sorte,idfiltro,qincr,bprimaestrfissa,ndistanza,nclasse,quantitanumeriscelti,av,quantinumfissi,quantiequalinumbers,alunghette,filereportxgufinale,numeroincrementitop,filerisultanzaconnumeroincrementitop,filerisultanzaconnumeroincrementitopcasimultipli)
Dim ntotlunghette
Dim k,schrsep,snumreal
Dim anumeri,afissi ', nclasse,nsorte,retrit1,retritmax,retincrritmax,retfreq
Dim ruoteselezionate',quantitanumeriscelti
Dim ms,aretcol
ReDim afissi(7)
Dim i
Dim numfissoagirare,numfissoagirare2,numfissoagirare3,numfissoagirare4,numfissoagirare5,numfissoagirare6,numfissoagirare7,numfissoagirare8,numfissoagirare9,numfissoagirare10
Dim numfissoagirare11,numfissoagirare12,numfissoagirare13,numfissoagirare14,numfissoagirare15,numfissoagirare16,numfissoagirare17,numfissoagirare18,numfissoagirare19,numfissoagirare20
Dim clsl,colllunghette,filtroesaminato
Dim valorestringa
Set colllunghette = GetNewCollection
filtroesaminato = scrivifiltro(idfiltro)
schrsep = " "
Dim an,anum
Select Case quantinumfissi
Case 0
Call Messaggio("hai scelto 0 num. fissi")
Dim fissidecisi,nav
afissi = Array(0)
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("riga: " & i & " fisso(i): " & "-" & "0" & " classe: " & nclasse & " l. Int: " & ntotlunghette & " valide " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
Dim diff
diff = retritmax - retrit1
Dim rapportorars
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fissi: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 1
Call Messaggio("hai scelto 1 num. fisso")
For nav = 0 To UBound(av) - 1
afissi = Array(0,av(1))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("riga: " & i & " fisso(i): " & "-" & av(1) & " classe: " & nclasse & " l. int: " & ntotlunghette & " valide " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Next
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 2
Call Messaggio("hai scelto 2 num. fissi")
afissi = Array(0,av(1),av(2))',av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.fisso(i): " & av(0) & "-" & av(1) & "-" & av(2) & " classe: " & nclasse & " l.int: " & ntotlunghette & " valide " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 3
Call Messaggio("hai scelto 3 num. fissi")
afissi = Array(0,av(1),av(2),av(3))',av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 4
Call Messaggio("hai scelto 4 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4))',av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.fisso(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & " c: " & nclasse & " l. i: " & ntotlunghette & " valide " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 5
Call Messaggio("hai scelto 5 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5))',av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("r: " & i & " n.f.(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & " c: " & nclasse & " l.i. " & ntotlunghette & " v: " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " n. fissi: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 6
Call Messaggio("hai scelto 6 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6))',av(7),av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n. fisso(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & " c: " & nclasse & " l.i:" & ntotlunghette & " valide " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 7
Call Messaggio("hai scelto 7 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7))',av(8),av(9),av(10),av(11),av(12),av(13)) ',av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " nf(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 8
Call Messaggio("hai scelto 8 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8))',av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n. f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & " c: " & nclasse & " l. i: " & ntotlunghette & " valide " & colllunghette.count & " sorte " & sorte & " ruota " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 9
Call Messaggio("hai scelto 9 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9))',av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 10
Call Messaggio("hai scelto 10 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10))',av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 11
Call Messaggio("hai scelto 11 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11))',av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 12
Call Messaggio("hai scelto 12 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12)) '<< cos㬠funziona perfettamente...
valorestringa = StringaNumeri(afissi,,True)
Dim stringaav
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & "-" & av(12) & "-" & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 13
Call Messaggio("hai scelto 13 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & quantinumfissi & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 14
Call Messaggio("hai scelto 14 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & "-" & av(12) & "-" & av(13) & "-" & av(14) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 15
Call Messaggio("hai scelto 15 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14),av(15))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & "-" & av(12) & "-" & av(13) & "-" & av(14) & "-" & av(15) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 16
Call Messaggio("hai scelto 16 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14),av(15),av(16))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & quantinumfissi & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 17
Call Messaggio("hai scelto 17 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14),av(15),av(16),av(17))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & "-" & av(12) & "-" & av(13) & "-" & av(14) & "-" & av(15) & "-" & av(16) & "-" & av(17) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 18
Call Messaggio("hai scelto 18 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14),av(15),av(16),av(17),av(18))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & "-" & av(12) & "-" & av(13) & "-" & av(14) & "-" & av(15) & "-" & av(16) & "-" & av(17) & "-" & av(18) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 19
Call Messaggio("hai scelto 19 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14),av(15),av(16),av(17),av(18),av(19))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & quantinumfissi & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
Call Scrivi("tempo trascorso " & TempoTrascorso)
Case 20
Call Messaggio("hai scelto 20 num. fissi")
afissi = Array(0,av(1),av(2),av(3),av(4),av(5),av(6),av(7),av(8),av(9),av(10),av(11),av(12),av(13),av(14),av(15),av(16),av(17),av(18),av(19),av(20))
valorestringa = StringaNumeri(afissi,,True)
Set ms = GetMotoreSviluppoIntegrale
Call ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
ntotlunghette = ms.InitSviluppoIntegrale(alunghette,nclasse,afissi)
k = 0
Do While ms.GetCombSviluppo(aretcol)
Call Messaggio("rn: " & i & " n.f(i): " & av(0) & "-" & av(1) & "-" & av(2) & "-" & av(3) & "-" & av(4) & "-" & av(5) & "-" & av(6) & "-" & av(7) & "-" & av(8) & "-" & av(9) & "-" & av(10) & "-" & av(11) & "-" & av(12) & "-" & av(13) & "-" & av(14) & "-" & av(15) & "-" & av(16) & "-" & av(17) & "-" & av(18) & "-" & av(19) & "-" & av(20) & " c: " & nclasse & " l.i: " & ntotlunghette & " v: " & colllunghette.count & " s: " & sorte & " r: " & StringaRuote(aruote))
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruote(k)
Call StatisticaFormazioneTurbo(aretcol,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
diff = retritmax - retrit1
rapportorars = retrit1/retritmax
Next
If ScriptInterrotto Then Exit Do
k = k + 1
Set clsl = New clslunghetta
Call clsl.init(aretcol,schrsep,inizio,fine,aruote,sorte)
If clsl.iscondizionerispettata(idfiltro,qincr) Then
Call clsl.eseguistatistica
colllunghette.Add clsl
Call ScriviFile(filereportxgufinale,StringaNumeri(aretcol))
Call CloseFileHandle(filereportxgufinale)
End If
If k Mod 50 = 0 Then
Call Messaggio("riga: " & k & " valide " & colllunghette. count & " num fisso: " & numfissoagirare)
If colllunghette.count > 0 Then
Call Messaggio("trovata!")
'Call playwav("C:\silenzio.wav",1,"Bene! Condizione incmax doc trovata! Adesso sviluppo il gruppo base in ambi e ne verifico eventuali frequenze zero ad oggi")
End If
DoEventsEx
Call AvanzamentoElab(1,aretcol,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Set ms = Nothing
Call Scrivi
End Select
Call Scrivi
Call Scrivi("elaborazione effettuata con archivio lotto aggiornato all'estrazione del: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call Scrivi
Scrivi "range analisi : " & GetInfoEstrazione(inizio) & " - " & GetInfoEstrazione(fine)
Scrivi "filtro esaminato : " & filtroesaminato
Scrivi "classe di sviluppo : " & nclasse
Scrivi "numero(i) fisso(i) scelto(i) : " & valorestringa
Scrivi "lunghette totali in esame : " & ntotlunghette
Scrivi "lunghette esaminate : " & i & " valide : " & colllunghette.count
Scrivi "sorte : " & NomeSorte(sorte)
Scrivi "ruote : " & StringaRuote(aruote)
Scrivi "numero minimo incrrit : " & Format2(qincr)
Scrivi
Scrivi FormatSpace("lunghette ordinate per incremento ritardo max",75),True,True,RGB(25,89,76),vbWhite
Call Scrivi
If colllunghette.count > 0 Then
Call OrdinaItemCollection(colllunghette,"incrritmax",,,- 1)
For Each clsl In colllunghette
If ndistanza = 0 Then
Call Scrivi("numeri formazione : " & clsl.lunghettastring)
Else
snumreal = clsl.trasformaarraynumvirtonumreal(ndistanza,bprimaestrfissa)
Call Scrivi("numeri formazione : " & clsl.lunghettastring)
End If
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("strincrementi : " & clsl.strincritmaxsto)
Call Scrivi("numero incrementi : " & clsl.inumincrementi)
If Int(clsl.inumincrementi) = numeroincrementitop Then
Scrivi
Scrivi "RILEVATO CASO NUMERO INCREMENTI MASSIMO MULTIPLO! " & numeroincrementitop
Scrivi
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"elaborazione effettuata con archivio lotto aggiornato all'estrazione del: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"")
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"range analisi : " & GetInfoEstrazione(inizio) & " - " & GetInfoEstrazione(fine))
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"filtro esaminato : " & filtroesaminato)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"classe di sviluppo : " & nclasse)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"numero(i) fisso(i) scelto(i) : " & valorestringa)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"lunghette totali in esame : " & ntotlunghette)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"lunghette esaminate : " & i & " valide : " & colllunghette.count)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"sorte : " & NomeSorte(sorte))
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"ruote : " & StringaRuote(aruote))
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"numero minimo incrrit : " & Format2(qincr))
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"")
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,FormatSpace("lunghette ordinate per incremento ritardo max",75))
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"")
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"IL NUMERO DI INCREMENTI TOP SEMBRA ESSERE... " & numeroincrementitop)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"")
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"")
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"numeri formazione : " & clsl.lunghettastring)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"ritardo : " & clsl.ritardo)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"ritmax : " & clsl.ritardomax)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"freq : " & clsl.frequenza)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"incrritmx : " & clsl.incrritmax)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"incrritmaxsto : " & clsl.incrritmaxsto)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"strincrementi : " & clsl.strincritmaxsto)
Call ScriviFile(filerisultanzaconnumeroincrementitopcasimultipli,"numero incrementi : " & clsl.inumincrementi)
Call CloseFileHandle(filerisultanzaconnumeroincrementitopcasimultipli)
Scrivi
Scrivi "IL NUMERO DI INCREMENTI TOP SEMBRA ESSERE ANCORA... " & numeroincrementitop
Scrivi
End If
If Int(clsl.inumincrementi) > numeroincrementitop Then
numeroincrementitop = Int(clsl.inumincrementi)
If FileEsistente(filerisultanzaconnumeroincrementitop) Then
Call EliminaFile(filerisultanzaconnumeroincrementitop)
End If
Call ScriviFile(filerisultanzaconnumeroincrementitop,"elaborazione effettuata con archivio lotto aggiornato all'estrazione del: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call ScriviFile(filerisultanzaconnumeroincrementitop,"")
Call ScriviFile(filerisultanzaconnumeroincrementitop,"range analisi : " & GetInfoEstrazione(inizio) & " - " & GetInfoEstrazione(fine))
Call ScriviFile(filerisultanzaconnumeroincrementitop,"filtro esaminato : " & filtroesaminato)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"classe di sviluppo : " & nclasse)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"numero(i) fisso(i) scelto(i) : " & valorestringa)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"lunghette totali in esame : " & ntotlunghette)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"lunghette esaminate : " & i & " valide : " & colllunghette.count)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"sorte : " & NomeSorte(sorte))
Call ScriviFile(filerisultanzaconnumeroincrementitop,"ruote : " & StringaRuote(aruote))
Call ScriviFile(filerisultanzaconnumeroincrementitop,"numero minimo incrrit : " & Format2(qincr))
Call ScriviFile(filerisultanzaconnumeroincrementitop,"")
Call ScriviFile(filerisultanzaconnumeroincrementitop,FormatSpace("lunghette ordinate per incremento ritardo max",75))
Call ScriviFile(filerisultanzaconnumeroincrementitop,"")
Call ScriviFile(filerisultanzaconnumeroincrementitop,"IL NUMERO DI INCREMENTI TOP SEMBRA ESSERE... " & numeroincrementitop)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"")
Call ScriviFile(filerisultanzaconnumeroincrementitop,"")
Call ScriviFile(filerisultanzaconnumeroincrementitop,"numeri formazione : " & clsl.lunghettastring)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"ritardo : " & clsl.ritardo)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"ritmax : " & clsl.ritardomax)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"freq : " & clsl.frequenza)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"incrritmx : " & clsl.incrritmax)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"incrritmaxsto : " & clsl.incrritmaxsto)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"strincrementi : " & clsl.strincritmaxsto)
Call ScriviFile(filerisultanzaconnumeroincrementitop,"numero incrementi : " & clsl.inumincrementi)
Call CloseFileHandle(filerisultanzaconnumeroincrementitop)
End If
Scrivi
Scrivi "IL NUMERO DI INCREMENTI TOP SEMBRA ESSERE... " & numeroincrementitop
Scrivi
Dim vettorexlaverificaesiti
Dim sommaritardi
sommaritardi = 0
Dim sommafrequenze
sommafrequenze = 0
Dim sommaincmax
sommaincmax = 0
Call SplitByChar("." & clsl.lunghettastring & ".",".",vettorexlaverificaesiti)
Dim v
For v = 0 To UBound(vettorexlaverificaesiti)
Scrivi vettorexlaverificaesiti(v)
Next
Dim coltot,Classe
Dim acol
Dim sortediverifica
Dim retrit1
Dim retritmax
Dim retincrritmax
Dim retfreq
sortediverifica = 2
Classe = 2
Dim inizioverifica,fineverifica,rangetemporalediverifica
fineverifica = EstrazioneFin
rangetemporalediverifica = 1830
inizioverifica = 1 ' fineverifica - rangetemporalediverifica
coltot = InitSviluppoIntegrale(vettorexlaverificaesiti,Classe)
If coltot > 0 Then
Call Scrivi
Call Scrivi(" Sviluppo in classe: " & Classe & " sorte " & sortediverifica)
Call Scrivi
Do While GetCombSviluppo(acol) = True
Call StatisticaFormazioneTurbo(acol,aruote,sortediverifica,retrit1,retritmax,retincrritmax,retfreq,inizioverifica,fineverifica)
sommaritardi = sommaritardi + retrit1
sommafrequenze = sommafrequenze + retfreq
sommaincmax = sommaincmax + retincrritmax
Scrivi "<font color=blue>" & StringaNumeri(acol) & " rit " & retrit1 & " ritmax " & retritmax & " incmax " & retincrritmax & " freq " & retfreq
fineverifica = EstrazioneFin
rangetemporalediverifica = 1830
Call StatisticaFormazioneTurbo(acol,aruote,sortediverifica,retrit1,retritmax,retincrritmax,retfreq,inizioverifica,fineverifica)
If retfreq = 0 Then
Scrivi StringaNumeri(acol) & " rit " & retrit1 & " ritmax " & retritmax & " incmax " & retincrritmax & " freq " & retfreq
End If
Loop
End If
Dim secondaclasse
Dim Secondasorte
secondaclasse = 1
Secondasorte = 1
Dim coltot1
Dim acol1
coltot1 = InitSviluppoIntegrale(vettorexlaverificaesiti,secondaclasse)
If coltot1 > 0 Then
Call Scrivi
Call Scrivi(" Sviluppo in classe: " & secondaclasse & " sorte " & Secondasorte)
Call Scrivi
Do While GetCombSviluppo(acol1) = True
Call StatisticaFormazioneTurbo(acol1,aruote,Secondasorte,retrit1,retritmax,retincrritmax,retfreq,inizioverifica,fineverifica)
Scrivi "<font color=blue>" & StringaNumeri(acol1) & " rit " & retrit1 & " ritmax " & retritmax & " incmax " & retincrritmax & " freq " & retfreq
Loop
End If
Scrivi
Scrivi "Numero formazioni sviluppate " & coltot
Scrivi
Scrivi "<font color=red>Somma ritardi relativa " & sommaritardi
Scrivi
Scrivi "<font color=blue>Somma frequenze relativa " & sommafrequenze
Scrivi
Scrivi "<font color=violet><strong>Somma incmax relativa " & sommaincmax & "</strong>"
Scrivi
Next
Else
Scrivi "nessuna lunghetta rispetta le condizioni"
Scrivi "lunghette esaminate " & ntotlunghette
End If
Scrivi
Scrivi("tempo trascorso: " & TempoTrascorso)
End Sub
Sub playwav(sfile,nrepeat,stesto)
Dim ovoice,ospfilestream
Dim k
Set ovoice = CreateObject("sapi.spvoice")
Set ospfilestream = CreateObject("sapi.spfilestream")
For k = 1 To nrepeat
ospfilestream.Open sfile
ovoice.speakstream ospfilestream
ospfilestream.Close
Next
ovoice.speak stesto
End Sub
Option Explicit
' Script n. 42 tom's bakery x lotto by tom ; sviluppo e analisi in modo integrale in classe <= 20 con rilevamento del 'numero esatto di righe sviluppate in rapporto al numero ' desiderato di ruote unite a girare..., alla classe di sviluppo 'scelta e alla classe del gruppo base da sviluppare. A 'differenza dello script n. 40, quasi del tutto analogo, questo 'invece di avvalersi 'dell'ordinamento tramite tabella (molto più lento e limitato) si basa sull'uso di matrici dinamiche 'molto più 'performanti battendo molto in velocità elaborazionale e di ordinamento il suo 'predecessore; sempre a 'differenza dell'altro consente l'analisi tramite inserimento dei numeri voluti sia da tabella 'che da file txt, inoltre 'rileva per ogni elaborazione anche il valori massimi e minimi di ra , rs , fq e incmax :)
Sub Main
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Dim diff
Dim ritardomassimorilevato
Dim ritardomassimostoricorilevato
Dim stringarisultatoxritardomassimorilevato
Dim stringarisultatoxritardostoricomassimorilevato
Dim ritardominimorilevato
Dim ritardominimostoricorilevato
Dim stringarisultatoxritardominimorilevato
Dim stringarisultatoxritardominimostoricorilevato
Dim freqmassimarilevata
Dim freqminimarilevata
Dim stringarisultatoxfreqmassimarilevata
Dim stringarisultatoxfreqminimarilevata
Dim Incmaxmassimorilevato
Dim Incmaxminimorilevato
Dim stringarisultatoxincmaxmassimorilevato
Dim stringarisultatoxincmaxminimorilevato
Dim diffmassimarilevata
Dim diffminimarilevata
Dim stringarisultatoxdiffmassimarilevata
Dim stringarisultatoxdiffminimarilevata
ritardomassimorilevato = 0
ritardomassimostoricorilevato = 0
ritardominimorilevato = EstrazioneFin
ritardominimostoricorilevato = EstrazioneFin
freqmassimarilevata = 0
freqminimarilevata = EstrazioneFin
Incmaxmassimorilevato = 0
Incmaxminimorilevato = EstrazioneFin
diffmassimarilevata = 0
diffminimarilevata = EstrazioneFin
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim contatorexmatrice
Dim matriceordinabilemultidimensionale(500000,6) '10000
Dim righeoccupatenellamatrice
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,1))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,1))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
Dim dafileodatabella
dafileodatabella = InputBox("da file (f) o da tabella (t)",,"f")
If dafileodatabella = "t" Then
MsgBox "hai scelto da tabella"
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,1))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
righesviluppate = InitSviluppoIntegrale(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
Do While GetCombSviluppo(rigasviluppata) = True
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazione(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
Loop
End If
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next 'x numero ruote unite
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?" ,,100))
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto dell matrice ordinata..."
Scrivi
Dim sortFREQ
Dim MassimoFreq
Dim MinimoFreq
Dim sortRITMAX
Dim MassimoRITMAX
Dim MinimoRITMAX
Dim sortINCMAX
Dim MassimoINCMAX
Dim MinimoINCMAX
Dim sortRIT
Dim MassimoRIT
Dim MinimoRIT
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Dim cmom
Dim k
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento ,Valorediordinamentovoluto)
For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da tabella"
Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri)
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi
Scrivi "Tt : " & TempoTrascorso
Else
MsgBox "hai scelto analisi da file"
MsgBox "scegli file da analizzare"
Dim filedaelaborare
filedaelaborare = ScegliFile(".\",".txt","filetxtdasviluppareeanalizzare.txt")
MsgBox "hai scelto di analizzare il seguente file: " & filedaelaborare
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,2))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Dim arighefiledaelaborare
Dim crfde
Dim vettorestringhenumerifile
Dim vettoreinterinumerifile
Call LeggiRigheFileDiTesto(filedaelaborare,arighefiledaelaborare)
For crfde = 0 To UBound(arighefiledaelaborare)
'Scrivi "|" & arighefiledaelaborare(crfde) & "|"
Call SplitByChar(arighefiledaelaborare(crfde),".",vettorestringhenumerifile)
Dim cevns
ReDim vettoreinterinumerifile(UBound(vettorestringhenumerifile))
For cevns = 0 To UBound(vettorestringhenumerifile)
vettoreinterinumerifile(cevns) = Int(vettorestringhenumerifile(cevns))
Dim cvi
Next ' x vettore stringhe numeri file
Scrivi
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
For crr = 0 To UBound(arighefile)
righesviluppate = InitSviluppoIntegrale(vettoreinterinumerifile,classe)
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
Do While GetCombSviluppo(rigasviluppata) = True
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazione(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
Loop
End If
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next ' x vettore righe file txt da elaborare
Next 'x numero ruote unite...
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?" ,,100))
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto della matrice ordinata..."
Scrivi
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da file"
Scrivi "file scelto per l'elaborazione " & filedaelaborare
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi
Scrivi "Tt : " & TempoTrascorso
End If
End Sub
Option Explicit
' Script n. 42 (B) tom's bakery x lotto by tom ; sviluppo e analisi in modo integrale SENZA LIMITE DI CLASSE con rilevamento del numero esatto di righe sviluppate in rapporto al numero
' desiderato di ruote unite a girare..., alla classe di sviluppo scelta e alla classe del gruppo base da sviluppare. A differenza dello script n. 40, quasi del tutto analogo, questo invece di avvalersi
'dell'ordinamento tramite tabella (molto più lento e limitato) si basa sull'uso di matrici dinamiche molto più performanti battendo molto in velocità elaborazionale e di ordinamento il suo
'predecessore; sempre a differenza dell'altro consente l'analisi tramite inserimento dei numeri voluti sia da tabella che da file txt, inoltre rileva per ogni elaborazione anche il valori massimi di ra , rs , fq e incmax :)
'classe motore x sviluppo senza limite di classe
Class clsSviluppo
Private aBNumDaSvil
Private nQNumeri
Private nCombInt
Private nClasse
Private aRighe
Private nQNumPerRiga
Private aPuntatore
Private nSviluppate
Function InitSviluppo(aNumeri,Classe)
nQNumeri = AlimentArrayNumDaSvil(aNumeri)
nCombInt = Combinazioni(nQNumeri,Classe)
nClasse = Classe
nSviluppate = 0
If nCombInt > 0 Then
Call AlimentaArrayRighe
Call InitArrayPuntatore
End If
InitSviluppo = nCombInt
End Function
Function GetQuantitaNumeriDaSvil
GetQuantitaNumeriDaSvil = nQNumeri
End Function
Function GetStringaNumDaSvil
Dim s,k
s = ""
For k = 1 To UBound(aBNumDaSvil)
If aBNumDaSvil(k) Then
s = s & Format2(k) & "."
End If
Next
GetStringaNumDaSvil = RimuoviLastChr(s,".")
End Function
Private Sub InitArrayPuntatore
Dim k
ReDim aPuntatore(nClasse)
For k = 1 To nClasse - 1
aPuntatore(k) = 1
Next
aPuntatore(k) = 0
End Sub
Function GetComb(aComb)
Dim nTmp,K,nPuntatore
nPuntatore = nClasse
nTmp = aPuntatore(nPuntatore) + 1
Do While nTmp > nQNumPerRiga
nPuntatore = nPuntatore - 1
If nPuntatore <= 0 Then Exit Do
nTmp = aPuntatore(nPuntatore) + 1
Loop
If nPuntatore > 0 Then
For K = nPuntatore To nClasse
aPuntatore(K) = nTmp
Next
ReDim aComb(nClasse)
For K = 1 To nClasse
aComb(K) = aRighe(K,aPuntatore(K))
Next
nSviluppate = nSviluppate + 1
GetComb = True
Else
GetComb = False
End If
End Function
Function GetQuantitaSviluppate
GetQuantitaSviluppate = nSviluppate
End Function
Private Function AlimentArrayNumDaSvil(aNumeri)
Dim k,q
aBNumDaSvil = ArrayNumeriToBool(aNumeri)
For k = 1 To 90
If aBNumDaSvil(k) Then
q = q + 1
End If
Next
AlimentArrayNumDaSvil = q
End Function
Private Sub AlimentaArrayRighe
Dim nRiga,k,aNumeri
Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri)
nQNumPerRiga =(nQNumeri - nClasse) + 1
ReDim aRighe(nClasse,nQNumPerRiga)
For nRiga = 1 To nClasse
For k = nRiga To(nRiga + nQNumPerRiga) - 1
aRighe(nRiga,(k - nRiga) + 1) = aNumeri(k)
Next
Next
End Sub
Sub OutputARighe
Dim k,j,s
For k = 1 To nClasse
s = ""
For j = 1 To nQNumPerRiga
s = s & Format2(aRighe(k,j)) & "."
Next
Next
End Sub
End Class
'fine classe motore senzalimitediclasse
Sub Main
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Dim diff
Dim ritardomassimorilevato
Dim ritardomassimostoricorilevato
Dim stringarisultatoxritardomassimorilevato
Dim stringarisultatoxritardostoricomassimorilevato
Dim ritardominimorilevato
Dim ritardominimostoricorilevato
Dim stringarisultatoxritardominimorilevato
Dim stringarisultatoxritardominimostoricorilevato
Dim freqmassimarilevata
Dim freqminimarilevata
Dim stringarisultatoxfreqmassimarilevata
Dim stringarisultatoxfreqminimarilevata
Dim Incmaxmassimorilevato
Dim Incmaxminimorilevato
Dim stringarisultatoxincmaxmassimorilevato
Dim stringarisultatoxincmaxminimorilevato
Dim diffmassimarilevata
Dim diffminimarilevata
Dim stringarisultatoxdiffmassimarilevata
Dim stringarisultatoxdiffminimarilevata
Dim stringarsmaxdiognigrupporuoteunite
Dim ritardomassimoxgrupporuoteunite
ritardomassimoxgrupporuoteunite = 0
Dim contacasimultiplixrit
contacasimultiplixrit = 0
Dim contacasimultiplixritmin
contacasimultiplixritmin = EstrazioneFin
Dim contacasimultiplixfqmax
contacasimultiplixfqmax = 0
Dim contacasimultiplixfqmin
contacasimultiplixfqmin = EstrazioneFin
Dim contacasimultiplixincmaxmax
contacasimultiplixincmaxmax = 0
stringarsmaxdiognigrupporuoteunite = ""
ritardomassimorilevato = 0
ritardomassimostoricorilevato = 0
ritardominimorilevato = EstrazioneFin
ritardominimostoricorilevato = EstrazioneFin
freqmassimarilevata = 0
freqminimarilevata = EstrazioneFin
Incmaxmassimorilevato = 0
Incmaxminimorilevato = EstrazioneFin
diffmassimarilevata = 0
diffminimarilevata = EstrazioneFin
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim contatorexmatrice
'Dim matriceordinabilemultidimensionale(500000,6) '(1300000,6) '(2600000,6) ' (500000,6) '10000 ' in c5 by gruppo 72 le formazioni integrali sono oltre 13 mln... ; in c4 solo.. 1.028.000 ca
Dim matriceordinabilemultidimensionale(500000,6) '(3200000,6) 'rispetto i 3162510 necessari ad analizzare le rispettive c5 x A by cf54 sarebbero più che sufficienti...
Dim righeoccupatenellamatrice
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,ruoteuniteminimo))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,1))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
Dim dafileodatabella
Dim csvil
Set csvil = New clsSviluppo
dafileodatabella = InputBox("da file (f) o da tabella (t)",,"t")
If dafileodatabella = "t" Then
MsgBox "hai scelto da tabella"
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,sorte))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(anumeri,classe)
righesviluppate = csvil.InitSviluppo(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
Messaggio "n" & StringaNumeri(rigasviluppata) & "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrit = 0
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmax = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next 'x numero ruote unite
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
'quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = Int(quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice)
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto dell matrice ordinata..."
Scrivi
Scrivi "num-ruota-sorte-rit-ritmax-incmax-freq"
Scrivi
Dim sortFREQ
Dim MassimoFreq
Dim MinimoFreq
Dim sortRITMAX
Dim MassimoRITMAX
Dim MinimoRITMAX
Dim sortINCMAX
Dim MassimoINCMAX
Dim MinimoINCMAX
Dim sortRIT
Dim MassimoRIT
Dim MinimoRIT
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Dim cmom
Dim k
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da tabella"
Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri)
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) - 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax) - 1
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) - 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) - 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
Else
MsgBox "hai scelto analisi da file"
MsgBox "scegli file da analizzare"
Dim filedaelaborare
filedaelaborare = ScegliFile(".\",".txt","filetxtdasviluppareeanalizzare.txt")
MsgBox "hai scelto di analizzare il seguente file: " & filedaelaborare
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,2))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Dim arighefiledaelaborare
Dim crfde
Dim vettorestringhenumerifile
Dim vettoreinterinumerifile
Call LeggiRigheFileDiTesto(filedaelaborare,arighefiledaelaborare)
For crfde = 0 To UBound(arighefiledaelaborare)
'Scrivi "|" & arighefiledaelaborare(crfde) & "|"
Call SplitByChar(arighefiledaelaborare(crfde),".",vettorestringhenumerifile)
Dim cevns
ReDim vettoreinterinumerifile(UBound(vettorestringhenumerifile))
For cevns = 0 To UBound(vettorestringhenumerifile)
vettoreinterinumerifile(cevns) = Int(vettorestringhenumerifile(cevns))
Dim cvi
Next ' x vettore stringhe numeri file
Scrivi
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(vettoreinterinumerifile,classe)
righesviluppate = csvil.InitSviluppo(vettoreinterinumerifile,classe)
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next ' x vettore righe file txt da elaborare
If ScriptInterrotto Then Exit For
Next 'x numero ruote unite...
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto della matrice ordinata..."
Scrivi
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
' For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
' Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
' Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da file"
Scrivi "file scelto per l'elaborazione " & filedaelaborare
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
End If
End Sub
Option Explicit
' Script n. 42 (C) tom's bakery x lotto by tom ; sviluppo e analisi in modo integrale SENZA LIMITE DI CLASSE con rilevamento del numero esatto di righe sviluppate in rapporto al numero
' desiderato di ruote unite a girare..., alla classe di sviluppo scelta e alla classe del gruppo base da sviluppare. A differenza dello script n. 40, quasi del tutto analogo, questo invece di avvalersi
'dell'ordinamento tramite tabella (molto più lento e limitato) si basa sull'uso di matrici dinamiche molto più performanti battendo molto in velocità elaborazionale e di ordinamento il suo
'predecessore; sempre a differenza dell'altro consente l'analisi tramite inserimento dei numeri voluti sia da tabella che da file txt, inoltre rileva per ogni elaborazione anche il valori massimi di ra , rs , fq e incmax :)
'rilevamento anche del numero di casi multipli eventuali per tutti i parametri statistici analizzati
'classe motore x sviluppo senza limite di classe
Class clsSviluppo
Private aBNumDaSvil
Private nQNumeri
Private nCombInt
Private nClasse
Private aRighe
Private nQNumPerRiga
Private aPuntatore
Private nSviluppate
Function InitSviluppo(aNumeri,Classe)
nQNumeri = AlimentArrayNumDaSvil(aNumeri)
nCombInt = Combinazioni(nQNumeri,Classe)
nClasse = Classe
nSviluppate = 0
If nCombInt > 0 Then
Call AlimentaArrayRighe
Call InitArrayPuntatore
End If
InitSviluppo = nCombInt
End Function
Function GetQuantitaNumeriDaSvil
GetQuantitaNumeriDaSvil = nQNumeri
End Function
Function GetStringaNumDaSvil
Dim s,k
s = ""
For k = 1 To UBound(aBNumDaSvil)
If aBNumDaSvil(k) Then
s = s & Format2(k) & "."
End If
Next
GetStringaNumDaSvil = RimuoviLastChr(s,".")
End Function
Private Sub InitArrayPuntatore
Dim k
ReDim aPuntatore(nClasse)
For k = 1 To nClasse - 1
aPuntatore(k) = 1
Next
aPuntatore(k) = 0
End Sub
Function GetComb(aComb)
Dim nTmp,K,nPuntatore
nPuntatore = nClasse
nTmp = aPuntatore(nPuntatore) + 1
Do While nTmp > nQNumPerRiga
nPuntatore = nPuntatore - 1
If nPuntatore <= 0 Then Exit Do
nTmp = aPuntatore(nPuntatore) + 1
Loop
If nPuntatore > 0 Then
For K = nPuntatore To nClasse
aPuntatore(K) = nTmp
Next
ReDim aComb(nClasse)
For K = 1 To nClasse
aComb(K) = aRighe(K,aPuntatore(K))
Next
nSviluppate = nSviluppate + 1
GetComb = True
Else
GetComb = False
End If
End Function
Function GetQuantitaSviluppate
GetQuantitaSviluppate = nSviluppate
End Function
Private Function AlimentArrayNumDaSvil(aNumeri)
Dim k,q
aBNumDaSvil = ArrayNumeriToBool(aNumeri)
For k = 1 To 90
If aBNumDaSvil(k) Then
q = q + 1
End If
Next
AlimentArrayNumDaSvil = q
End Function
Private Sub AlimentaArrayRighe
Dim nRiga,k,aNumeri
Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri)
nQNumPerRiga =(nQNumeri - nClasse) + 1
ReDim aRighe(nClasse,nQNumPerRiga)
For nRiga = 1 To nClasse
For k = nRiga To(nRiga + nQNumPerRiga) - 1
aRighe(nRiga,(k - nRiga) + 1) = aNumeri(k)
Next
Next
End Sub
Sub OutputARighe
Dim k,j,s
For k = 1 To nClasse
s = ""
For j = 1 To nQNumPerRiga
s = s & Format2(aRighe(k,j)) & "."
Next
Next
End Sub
End Class
'fine classe motore senzalimitediclasse
Sub Main
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Dim diff
Dim ritardomassimorilevato
Dim ritardomassimostoricorilevato
Dim stringarisultatoxritardomassimorilevato
Dim stringarisultatoxritardostoricomassimorilevato
Dim ritardominimorilevato
Dim ritardominimostoricorilevato
Dim stringarisultatoxritardominimorilevato
Dim stringarisultatoxritardominimostoricorilevato
Dim freqmassimarilevata
Dim freqminimarilevata
Dim stringarisultatoxfreqmassimarilevata
Dim stringarisultatoxfreqminimarilevata
Dim Incmaxmassimorilevato
Dim Incmaxminimorilevato
Dim stringarisultatoxincmaxmassimorilevato
Dim stringarisultatoxincmaxminimorilevato
Dim diffmassimarilevata
Dim diffminimarilevata
Dim stringarisultatoxdiffmassimarilevata
Dim stringarisultatoxdiffminimarilevata
Dim stringarsmaxdiognigrupporuoteunite
Dim ritardomassimoxgrupporuoteunite
ritardomassimoxgrupporuoteunite = 0
Dim contacasimultiplixrit
contacasimultiplixrit = 0
Dim contacasimultiplixritmin
contacasimultiplixritmin = 0 'EstrazioneFin
Dim contacasimultiplixfqmax
contacasimultiplixfqmax = 0
Dim contacasimultiplixfqmin
contacasimultiplixfqmin = 0 ' EstrazioneFin
Dim contacasimultiplixincmaxmax
contacasimultiplixincmaxmax = 0
'---------------------------------------------------
Dim contacasimultiplixrsmaxgenerale
contacasimultiplixrsmaxgenerale = 0
Dim contacasimultiplixrsmingenerale
contacasimultiplixrsmingenerale = 0
Dim contacasimultiplixincmaxmin
contacasimultiplixincmaxmin = 0
Dim contacasimultiplixdiffmax
contacasimultiplixdiffmax = 0
Dim contacasimultiplixdiffmin
contacasimultiplixdiffmin = 0
'---------------------------------------------------
stringarsmaxdiognigrupporuoteunite = ""
ritardomassimorilevato = 0
ritardomassimostoricorilevato = 0
ritardominimorilevato = EstrazioneFin
ritardominimostoricorilevato = EstrazioneFin
freqmassimarilevata = 0
freqminimarilevata = EstrazioneFin
Incmaxmassimorilevato = 0
Incmaxminimorilevato = EstrazioneFin
diffmassimarilevata = 0
diffminimarilevata = EstrazioneFin
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim contatorexmatrice
'Dim matriceordinabilemultidimensionale(500000,6) '(1300000,6) '(2600000,6) ' (500000,6) '10000 ' in c5 by gruppo 72 le formazioni integrali sono oltre 13 mln... ; in c4 solo.. 1.028.000 ca
Dim matriceordinabilemultidimensionale(500000,6) '(3200000,6) 'rispetto i 3162510 necessari ad analizzare le rispettive c5 x A by cf54 sarebbero più che sufficienti...
Dim righeoccupatenellamatrice
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,ruoteuniteminimo))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,1))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
Dim dafileodatabella
Dim csvil
Set csvil = New clsSviluppo
dafileodatabella = InputBox("da file (f) o da tabella (t)",,"t")
If dafileodatabella = "t" Then
MsgBox "hai scelto da tabella"
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,sorte))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(anumeri,classe)
righesviluppate = csvil.InitSviluppo(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
'Messaggio "n" & StringaNumeri(rigasviluppata) & "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
Messaggio "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrit = 0
End If
If ritmax = ritardomassimostoricorilevato Then
contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If ritmax = ritardominimostoricorilevato Then
contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmax = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax = contacasimultiplixincmaxmin Then
contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff = contacasimultiplixdiffmax Then
contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff = contacasimultiplixdiffmin Then
contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next 'x numero ruote unite
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
'quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = Int(quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice)
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto dell matrice ordinata..."
Scrivi
Scrivi "num-ruota-sorte-rit-ritmax-incmax-freq"
Scrivi
Dim sortFREQ
Dim MassimoFreq
Dim MinimoFreq
Dim sortRITMAX
Dim MassimoRITMAX
Dim MinimoRITMAX
Dim sortINCMAX
Dim MassimoINCMAX
Dim MinimoINCMAX
Dim sortRIT
Dim MassimoRIT
Dim MinimoRIT
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Dim cmom
Dim k
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da tabella"
Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri)
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "n. casi multipli di rit sto max generale " & contacasimultiplixrsmaxgenerale
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) - 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "n. casi multipli di rit sto min generale " & contacasimultiplixrsmingenerale
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax) - 1
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) - 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) - 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "n. casi multipli di incmax min generale " & contacasimultiplixincmaxmin
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "n. casi multipli di diff max generale " & contacasimultiplixdiffmax
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi "n. casi multipli di diff min generale " & contacasimultiplixdiffmin
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
Else
MsgBox "hai scelto analisi da file"
MsgBox "scegli file da analizzare"
Dim filedaelaborare
filedaelaborare = ScegliFile(".\",".txt","filetxtdasviluppareeanalizzare.txt")
MsgBox "hai scelto di analizzare il seguente file: " & filedaelaborare
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,2))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Dim arighefiledaelaborare
Dim crfde
Dim vettorestringhenumerifile
Dim vettoreinterinumerifile
Call LeggiRigheFileDiTesto(filedaelaborare,arighefiledaelaborare)
For crfde = 0 To UBound(arighefiledaelaborare)
'Scrivi "|" & arighefiledaelaborare(crfde) & "|"
Call SplitByChar(arighefiledaelaborare(crfde),".",vettorestringhenumerifile)
Dim cevns
ReDim vettoreinterinumerifile(UBound(vettorestringhenumerifile))
For cevns = 0 To UBound(vettorestringhenumerifile)
vettoreinterinumerifile(cevns) = Int(vettorestringhenumerifile(cevns))
Dim cvi
Next ' x vettore stringhe numeri file
Scrivi
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(vettoreinterinumerifile,classe)
righesviluppate = csvil.InitSviluppo(vettoreinterinumerifile,classe)
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next ' x vettore righe file txt da elaborare
If ScriptInterrotto Then Exit For
Next 'x numero ruote unite...
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto della matrice ordinata..."
Scrivi
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
' For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
' Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
' Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da file"
Scrivi "file scelto per l'elaborazione " & filedaelaborare
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
End If
End Sub
Option Explicit
' Script n. 49 (42 D tom's bakery) x lotto by tom ; sviluppo e analisi in modo integrale SENZA LIMITE DI CLASSE con rilevamento del numero esatto di righe sviluppate in rapporto al numero
' desiderato di ruote unite a girare..., alla classe di sviluppo scelta e alla classe del gruppo base da sviluppare. A differenza dello script n. 40, quasi del tutto analogo, questo invece di avvalersi
'dell'ordinamento tramite tabella (molto più lento e limitato) si basa sull'uso di matrici dinamiche molto più performanti battendo molto in velocità elaborazionale e di ordinamento il suo
'predecessore; sempre a differenza dell'altro consente l'analisi tramite inserimento dei numeri voluti sia da tabella che da file txt, inoltre rileva per ogni elaborazione anche il valori massimi di ra , rs , fq e incmax :)
'rilevamento anche del numero di casi multipli eventuali per tutti i parametri statistici analizzati sia per analisi da tabella che da file txt
'classe motore x sviluppo senza limite di classe
Class clsSviluppo
Private aBNumDaSvil
Private nQNumeri
Private nCombInt
Private nClasse
Private aRighe
Private nQNumPerRiga
Private aPuntatore
Private nSviluppate
Function InitSviluppo(aNumeri,Classe)
nQNumeri = AlimentArrayNumDaSvil(aNumeri)
nCombInt = Combinazioni(nQNumeri,Classe)
nClasse = Classe
nSviluppate = 0
If nCombInt > 0 Then
Call AlimentaArrayRighe
Call InitArrayPuntatore
End If
InitSviluppo = nCombInt
End Function
Function GetQuantitaNumeriDaSvil
GetQuantitaNumeriDaSvil = nQNumeri
End Function
Function GetStringaNumDaSvil
Dim s,k
s = ""
For k = 1 To UBound(aBNumDaSvil)
If aBNumDaSvil(k) Then
s = s & Format2(k) & "."
End If
Next
GetStringaNumDaSvil = RimuoviLastChr(s,".")
End Function
Private Sub InitArrayPuntatore
Dim k
ReDim aPuntatore(nClasse)
For k = 1 To nClasse - 1
aPuntatore(k) = 1
Next
aPuntatore(k) = 0
End Sub
Function GetComb(aComb)
Dim nTmp,K,nPuntatore
nPuntatore = nClasse
nTmp = aPuntatore(nPuntatore) + 1
Do While nTmp > nQNumPerRiga
nPuntatore = nPuntatore - 1
If nPuntatore <= 0 Then Exit Do
nTmp = aPuntatore(nPuntatore) + 1
Loop
If nPuntatore > 0 Then
For K = nPuntatore To nClasse
aPuntatore(K) = nTmp
Next
ReDim aComb(nClasse)
For K = 1 To nClasse
aComb(K) = aRighe(K,aPuntatore(K))
Next
nSviluppate = nSviluppate + 1
GetComb = True
Else
GetComb = False
End If
End Function
Function GetQuantitaSviluppate
GetQuantitaSviluppate = nSviluppate
End Function
Private Function AlimentArrayNumDaSvil(aNumeri)
Dim k,q
aBNumDaSvil = ArrayNumeriToBool(aNumeri)
For k = 1 To 90
If aBNumDaSvil(k) Then
q = q + 1
End If
Next
AlimentArrayNumDaSvil = q
End Function
Private Sub AlimentaArrayRighe
Dim nRiga,k,aNumeri
Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri)
nQNumPerRiga =(nQNumeri - nClasse) + 1
ReDim aRighe(nClasse,nQNumPerRiga)
For nRiga = 1 To nClasse
For k = nRiga To(nRiga + nQNumPerRiga) - 1
aRighe(nRiga,(k - nRiga) + 1) = aNumeri(k)
Next
Next
End Sub
Sub OutputARighe
Dim k,j,s
For k = 1 To nClasse
s = ""
For j = 1 To nQNumPerRiga
s = s & Format2(aRighe(k,j)) & "."
Next
Next
End Sub
End Class
'fine classe motore senzalimitediclasse
Sub Main
Dim ruoteuniteminimo
Dim ruoteunitemassimo
Dim numeroruoteunite
Dim filerisultato
Dim coltotruoteunite
ReDim aruote(0)
Dim acolruoteunite
Dim StringaRuoteUnite
Dim contarighe
Dim arighefile
Dim righesviluppate
Dim anumeri
Dim classe
Dim vettorerighefilemixruote
Dim rigasviluppata
Dim contarighesviluppate
Dim sorte
Dim rit,ritmax,Incmax,freq,Inizio,fine
Dim diff
Dim ritardomassimorilevato
Dim ritardomassimostoricorilevato
Dim stringarisultatoxritardomassimorilevato
Dim stringarisultatoxritardostoricomassimorilevato
Dim ritardominimorilevato
Dim ritardominimostoricorilevato
Dim stringarisultatoxritardominimorilevato
Dim stringarisultatoxritardominimostoricorilevato
Dim freqmassimarilevata
Dim freqminimarilevata
Dim stringarisultatoxfreqmassimarilevata
Dim stringarisultatoxfreqminimarilevata
Dim Incmaxmassimorilevato
Dim Incmaxminimorilevato
Dim stringarisultatoxincmaxmassimorilevato
Dim stringarisultatoxincmaxminimorilevato
Dim diffmassimarilevata
Dim diffminimarilevata
Dim stringarisultatoxdiffmassimarilevata
Dim stringarisultatoxdiffminimarilevata
Dim stringarsmaxdiognigrupporuoteunite
Dim ritardomassimoxgrupporuoteunite
ritardomassimoxgrupporuoteunite = 0
Dim contacasimultiplixrit
contacasimultiplixrit = 0
Dim contacasimultiplixritmin
contacasimultiplixritmin = 0 'EstrazioneFin
Dim contacasimultiplixfqmax
contacasimultiplixfqmax = 0
Dim contacasimultiplixfqmin
contacasimultiplixfqmin = 0 ' EstrazioneFin
Dim contacasimultiplixincmaxmax
contacasimultiplixincmaxmax = 0
'---------------------------------------------------
Dim contacasimultiplixrsmaxgenerale
contacasimultiplixrsmaxgenerale = 0
Dim contacasimultiplixrsmingenerale
contacasimultiplixrsmingenerale = 0
Dim contacasimultiplixincmaxmin
contacasimultiplixincmaxmin = 0
Dim contacasimultiplixdiffmax
contacasimultiplixdiffmax = 0
Dim contacasimultiplixdiffmin
contacasimultiplixdiffmin = 0
'---------------------------------------------------
stringarsmaxdiognigrupporuoteunite = ""
ritardomassimorilevato = 0
ritardomassimostoricorilevato = 0
ritardominimorilevato = EstrazioneFin
ritardominimostoricorilevato = EstrazioneFin
freqmassimarilevata = 0
freqminimarilevata = EstrazioneFin
Incmaxmassimorilevato = 0
Incmaxminimorilevato = EstrazioneFin
diffmassimarilevata = 0
diffminimarilevata = EstrazioneFin
Inizio = EstrazioneIni
fine = EstrazioneFin
Dim contatorexmatrice
'Dim matriceordinabilemultidimensionale(500000,6) '(1300000,6) '(2600000,6) ' (500000,6) '10000 ' in c5 by gruppo 72 le formazioni integrali sono oltre 13 mln... ; in c4 solo.. 1.028.000 ca
Dim matriceordinabilemultidimensionale(100000,6) ' 2000000 (500000,6) '(3200000,6) 'rispetto i 3162510 necessari ad analizzare le rispettive c5 x A by cf54 sarebbero più che sufficienti...
Dim righeoccupatenellamatrice
ruoteuniteminimo = CInt(InputBox("ruote unite minimo",,1))
ruoteunitemassimo = CInt(InputBox("ruote unite massimo",,ruoteuniteminimo))
MsgBox "scegli sorte"
sorte = CInt(InputBox("sorte",,1))
MsgBox "scegli ruote da analizzare"
Call ScegliRuote(aruote)
Dim dafileodatabella
Dim csvil
Set csvil = New clsSviluppo
dafileodatabella = InputBox("da file (f) o da tabella (t)",,"t")
If dafileodatabella = "t" Then
MsgBox "hai scelto da tabella"
MsgBox "scegli gruppo base da sviluppare e analizzare"
Call ScegliNumeri(anumeri)
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,sorte))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
Dim crr
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(anumeri,classe)
righesviluppate = csvil.InitSviluppo(anumeri,classe)
Dim vettoreruoteunite
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
Dim cvru
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
'Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
'Messaggio "n" & StringaNumeri(rigasviluppata) & "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
Messaggio "r" & StringaNumeri(vettoreruoteunite) & "s" & NomeSorte(sorte) & "rit" & rit & "rs" & ritmax & "incmax" & Incmax & "frq" & freq & "diff" & diff & "crm" & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrit = 0
End If
If ritmax = ritardomassimostoricorilevato Then
contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmaxgenerale = 0
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If ritmax = ritardominimostoricorilevato Then
contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmingenerale = 0
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmax = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax = Incmaxminimorilevato Then
contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmin = 0
End If
If diff = diffmassimarilevata Then
contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmax = 0
End If
If diff = diffminimarilevata Then
contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmin = 0
End If
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next 'x numero ruote unite
Dim Valorediordinamentovoluto
Dim Valorecriteriodiordinamento
Dim quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
'quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100)
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = Int(quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice)
Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupateinmatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto dell matrice ordinata..."
Scrivi
Scrivi "num-ruota-sorte-rit-ritmax-incmax-freq"
Scrivi
Dim sortFREQ
Dim MassimoFreq
Dim MinimoFreq
Dim sortRITMAX
Dim MassimoRITMAX
Dim MinimoRITMAX
Dim sortINCMAX
Dim MassimoINCMAX
Dim MinimoINCMAX
Dim sortRIT
Dim MassimoRIT
Dim MinimoRIT
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Dim cmom
Dim k
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da tabella"
Scrivi "gruppo base numerico analizzato " & StringaNumeri(anumeri)
Scrivi "classe gruppo numerico sviluppato " & UBound(anumeri)
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
Scrivi "cgb " & UBound(anumeri) & " ; " & " cs " & classe & " ; " & " pr " & UBound(aruote) & " ; qruag : da " & ruoteuniteminimo & " a " & ruoteunitemassimo & " ; righe " & contarighesviluppate & " ; tt : " & TempoTrascorso & " sg " & righesviluppate
Scrivi
Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale) - 1
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) - 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale) - 1
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax) - 1
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) - 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) - 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin) - 1
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax) - 1
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin) - 1
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
Else
MsgBox "hai scelto analisi da file"
MsgBox "scegli file da analizzare"
Dim filedaelaborare
filedaelaborare = ScegliFile(".\",".txt","filetxtdasviluppareeanalizzare.txt")
MsgBox "hai scelto di analizzare il seguente file: " & filedaelaborare
MsgBox "scegli classe da sviluppare"
classe = CInt(InputBox("classe",,2))
filerisultato = ".\gruppipossibilidiruoteunite.txt"
If FileEsistente(filerisultato) Then
Call EliminaFile(filerisultato)
End If
For numeroruoteunite = ruoteuniteminimo To ruoteunitemassimo
coltotruoteunite = InitSviluppoIntegrale(aruote,numeroruoteunite)
If coltotruoteunite > 0 Then
Do While GetCombSviluppo(acolruoteunite) = True
StringaRuoteUnite = StringaNumeri(acolruoteunite)
contarighe = contarighe + 1
ScriviFile filerisultato,StringaRuoteUnite
If ScriptInterrotto Then Exit Do
Loop
End If
CloseFileHandle(filerisultato)
Dim arighefiledaelaborare
Dim crfde
Dim vettorestringhenumerifile
Dim vettoreinterinumerifile
Call LeggiRigheFileDiTesto(filedaelaborare,arighefiledaelaborare)
For crfde = 0 To UBound(arighefiledaelaborare)
'Scrivi "|" & arighefiledaelaborare(crfde) & "|"
Call SplitByChar(arighefiledaelaborare(crfde),".",vettorestringhenumerifile)
Dim cevns
ReDim vettoreinterinumerifile(UBound(vettorestringhenumerifile))
For cevns = 0 To UBound(vettorestringhenumerifile)
vettoreinterinumerifile(cevns) = Int(vettorestringhenumerifile(cevns))
Dim cvi
Next ' x vettore stringhe numeri file
' Scrivi
Call LeggiRigheFileDiTesto(filerisultato,arighefile)
ReDim arigaruote(numeroruoteunite)
For crr = 0 To UBound(arighefile)
'righesviluppate = InitSviluppoIntegrale(vettoreinterinumerifile,classe)
righesviluppate = csvil.InitSviluppo(vettoreinterinumerifile,classe)
Call SplitByChar("." & arighefile(crr) & ".",".",vettoreruoteunite)
ReDim arigaruote(UBound(vettoreruoteunite))
For cvru = 0 To UBound(vettoreruoteunite)
If righesviluppate > 0 Then
' Do While GetCombSviluppo(rigasviluppata) = True
Do While cSvil.GetComb(rigasviluppata)
contarighesviluppate = contarighesviluppate + 1
Call StatisticaFormazioneTurbo(rigasviluppata,vettoreruoteunite,sorte,rit,ritmax,Incmax,freq,Inizio,fine)
Messaggio "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " crm " & contatorexmatrice
diff = ritmax - rit
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
contatorexmatrice = contatorexmatrice + 1
righeoccupatenellamatrice = righeoccupatenellamatrice + 1
If rit = ritardomassimorilevato Then
contacasimultiplixrit = contacasimultiplixrit + 1
End If
If rit > ritardomassimorilevato Then
ritardomassimorilevato = rit
stringarisultatoxritardomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrit = 0
End If
If ritmax = ritardomassimostoricorilevato Then
contacasimultiplixrsmaxgenerale = contacasimultiplixrsmaxgenerale + 1
End If
If ritmax > ritardomassimostoricorilevato Then
ritardomassimostoricorilevato = ritmax
stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmaxgenerale = 0
End If
If ritmax > ritardomassimoxgrupporuoteunite Then
ritardomassimoxgrupporuoteunite = ritmax
'stringarisultatoxritardostoricomassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
End If
If rit = ritardominimorilevato Then
contacasimultiplixritmin = contacasimultiplixritmin + 1
End If
If rit < ritardominimorilevato Then
ritardominimorilevato = rit
stringarisultatoxritardominimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixritmin = 0
End If
If ritmax = ritardominimostoricorilevato Then
contacasimultiplixrsmingenerale = contacasimultiplixrsmingenerale + 1
End If
If ritmax < ritardominimostoricorilevato Then
ritardominimostoricorilevato = ritmax
stringarisultatoxritardominimostoricorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixrsmingenerale = 0
End If
If freq = freqmassimarilevata Then
contacasimultiplixfqmax = contacasimultiplixfqmax + 1
End If
If freq > freqmassimarilevata Then
freqmassimarilevata = freq
stringarisultatoxfreqmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmax = 0
End If
If freq = freqminimarilevata Then
contacasimultiplixfqmin = contacasimultiplixfqmin + 1
End If
If freq < freqminimarilevata Then
freqminimarilevata = freq
stringarisultatoxfreqminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixfqmin = 0
End If
If Incmax = Incmaxmassimorilevato Then
contacasimultiplixincmaxmax = contacasimultiplixincmaxmax + 1
End If
If Incmax > Incmaxmassimorilevato Then
Incmaxmassimorilevato = Incmax
stringarisultatoxincmaxmassimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmax = 0
End If
If Incmax = Incmaxminimorilevato Then
contacasimultiplixincmaxmin = contacasimultiplixincmaxmin + 1
End If
If Incmax < Incmaxminimorilevato Then
Incmaxminimorilevato = Incmax
stringarisultatoxincmaxminimorilevato = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixincmaxmin = 0
End If
If diff = diffmassimarilevata Then
contacasimultiplixdiffmax = contacasimultiplixdiffmax + 1
End If
If diff > diffmassimarilevata Then
diffmassimarilevata = diff
stringarisultatoxdiffmassimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmax = 0
End If
If diff = diffminimarilevata Then
contacasimultiplixdiffmin = contacasimultiplixdiffmin + 1
End If
If diff < diffminimarilevata Then
diffminimarilevata = diff
stringarisultatoxdiffminimarilevata = "n " & StringaNumeri(rigasviluppata) & " r " & StringaNumeri(vettoreruoteunite) & " s " & NomeSorte(sorte) & " rit " & rit & " ritmax " & ritmax & " incmax " & Incmax & " freq " & freq & " diff " & diff & " contatore riga matrice " & contatorexmatrice
contacasimultiplixdiffmin = 0
End If
If ScriptInterrotto Then Exit Do
Loop
End If
If ritardomassimoxgrupporuoteunite <> 0 And ritardomassimoxgrupporuoteunite <> "0" Then
stringarsmaxdiognigrupporuoteunite = stringarsmaxdiognigrupporuoteunite & " | " & StringaNumeri(vettoreruoteunite) & " rsgru " & ritardomassimoxgrupporuoteunite & " . "
End If
ritardomassimoxgrupporuoteunite = 0
If ScriptInterrotto Then Exit For
Next ' cvru
If ScriptInterrotto Then Exit For
Messaggio "thread elaborazionale n. " & contatorexmatrice
Next
If ScriptInterrotto Then Exit For
Call AvanzamentoElab(1,ruoteunitemassimo,crr)
Next ' x vettore righe file txt da elaborare
If ScriptInterrotto Then Exit For
Next 'x numero ruote unite...
Valorediordinamentovoluto = CInt(InputBox("valore di ordinamento voluto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) ",,3))
Valorecriteriodiordinamento = CInt(InputBox("valore criterio di ordinamento voluto: crescente (1) decrescente (-1) ",,- 1))
quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice = CInt(InputBox("quanti risultati vuoi visualizzare rispetto quelli presenti in matrice e pari a " & righeoccupatenellamatrice & " ?",,100))
'Scrivi
' Scrivi "visualizzazione del contenuto della matrice non ordinata..."
' Scrivi
' For contatorexmatrice = 0 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice 'UBound(matriceordinabilemultidimensionale)
' Messaggio "sto elaborando il record di matrice n. " & contatorexmatrice
' Scrivi " n " & matriceordinabilemultidimensionale(contatorexmatrice,0) & " r " & matriceordinabilemultidimensionale(contatorexmatrice,1) & " s " & matriceordinabilemultidimensionale(contatorexmatrice,2) & " rit " & matriceordinabilemultidimensionale(contatorexmatrice,3) & " ritmax " & matriceordinabilemultidimensionale(contatorexmatrice,4) & " incmax " & matriceordinabilemultidimensionale(contatorexmatrice,5) & " freq " & matriceordinabilemultidimensionale(contatorexmatrice,6) & " diff " & diff & " contatore riga matrice " & contatorexmatrice
' Next
'Scrivi
Scrivi "visualizzazione del contenuto della matrice ordinata..."
Scrivi
MassimoFreq = freqmassimarilevata 'EstrazioneFin
MinimoFreq = freqminimarilevata '0
MassimoRITMAX = ritardomassimostoricorilevato 'EstrazioneFin
MinimoRITMAX = ritardominimostoricorilevato '0
MassimoINCMAX = Incmaxmassimorilevato 'EstrazioneFin
MinimoINCMAX = Incmaxminimorilevato '0
MassimoRIT = ritardomassimorilevato 'EstrazioneFin
MinimoRIT = ritardominimorilevato '0
Call OrdinaMatrice(matriceordinabilemultidimensionale,Valorecriteriodiordinamento,Valorediordinamentovoluto)
For k = 1 To quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice 'righeoccupatenellamatrice
Scrivi matriceordinabilemultidimensionale(k,0) & " - " & matriceordinabilemultidimensionale(k,1) & " - " & matriceordinabilemultidimensionale(k,2) & " - " & matriceordinabilemultidimensionale(k,3) & " - " & matriceordinabilemultidimensionale(k,4) & " - " & matriceordinabilemultidimensionale(k,5) & " - " & matriceordinabilemultidimensionale(k,6)
Next
Scrivi
Scrivi
Scrivi "Elaborazione terminata con successo!"
Scrivi
Scrivi "range temporale analizzato " & GetInfoEstrazione(EstrazioneIni) & " - " & GetInfoEstrazione(EstrazioneFin)
Scrivi "n. di estrazioni totali analizzate " &(EstrazioneFin - EstrazioneIni) + 1
Scrivi "Input numeri scelti da file"
Scrivi "file scelto per l'elaborazione " & filedaelaborare
Scrivi "numero complessivo di ruote a girare " & UBound(aruote)
Scrivi "ruote analizzate " & StringaRuote(aruote)
Scrivi "ruote unite minimo " & ruoteuniteminimo
Scrivi "ruote unite massimo " & ruoteunitemassimo
Scrivi "classe di sviluppo " & classe
Scrivi "sorte di ricerca " & sorte
Scrivi "parametro di ordinamento scelto num(0); ruote(1); rit(3) ; ritmax(4) ; incmax(5) ; freq(6) " & Valorediordinamentovoluto
Scrivi "criterio di ordinamento impostato crescente (1) decrescente (-1) " & Valorecriteriodiordinamento
Scrivi "righe (x mix di ruote) sviluppate " & contarighe
Scrivi "righe totali di sviluppo generate " & contarighesviluppate
Scrivi
'Scrivi "righe occupate nella matrice di dimensione ( " & UBound(matriceordinabilemultidimensionale) & " ) : " & righeoccupatenellamatrice
Scrivi "numero dei primi risultati visualizzati in output in base all'ordinamento scelto " & quantirisultativuoivisualizzarerispettolerigheoccupateinmatrice
Scrivi
Scrivi "report sui valori estremi rilevati"
Scrivi
Scrivi "rit max generale " & ritardomassimorilevato
Scrivi "formazione : " & stringarisultatoxritardomassimorilevato
Scrivi "n. casi multipli di rit max generale " & contacasimultiplixrit
Scrivi "rs max generale " & ritardomassimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardostoricomassimorilevato
Scrivi "n. casi multipli di rit sto max generale " & Int(contacasimultiplixrsmaxgenerale)' - 1
Scrivi "ra min generale " & ritardominimorilevato
Scrivi "formazione : " & stringarisultatoxritardominimorilevato
Scrivi "n. casi multipli di rit min generale " & Int(contacasimultiplixritmin) '- 1
Scrivi "rs min generale " & ritardominimostoricorilevato
Scrivi "formazione : " & stringarisultatoxritardominimostoricorilevato
Scrivi "n. casi multipli di rit sto min generale " & Int(contacasimultiplixrsmingenerale) '- 1
Scrivi "fq max generale " & freqmassimarilevata
Scrivi "formazione : " & stringarisultatoxfreqmassimarilevata
Scrivi "n. casi multipli di fq max generale " & Int(contacasimultiplixfqmax)' - 1
Scrivi "fq min generale " & freqminimarilevata
Scrivi "formazione : " & stringarisultatoxfreqminimarilevata
Scrivi "n. casi multipli di fq min generale " & Int(contacasimultiplixfqmin) '- 1
Scrivi "incmax max generale " & Incmaxmassimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxmassimorilevato
Scrivi "n. casi multipli di incmax max generale " & Int(contacasimultiplixincmaxmax) '- 1
Scrivi "incmax min generale " & Incmaxminimorilevato
Scrivi "formazione : " & stringarisultatoxincmaxminimorilevato
Scrivi "n. casi multipli di incmax min generale " & Int(contacasimultiplixincmaxmin) '- 1
Scrivi "diff max generale " & diffmassimarilevata
Scrivi "formazione : " & stringarisultatoxdiffmassimarilevata
Scrivi "n. casi multipli di diff max generale " & Int(contacasimultiplixdiffmax)' - 1
Scrivi "diff min generale " & diffminimarilevata
Scrivi "formazione : " & stringarisultatoxdiffminimarilevata
Scrivi "n. casi multipli di diff min generale " & Int(contacasimultiplixdiffmin) '- 1
Scrivi
Scrivi "rs max relativi ad ogni gruppo di ruote unite generato " & stringarsmaxdiognigrupporuoteunite
Scrivi
Scrivi "Tt : " & TempoTrascorso
End If
End Sub
Tom ha scritto (in un altro thread):
Non smorzi nulla anzi me lo amplificheresti.. caro happy se non fosse che addirittura ricerco situazioni ancora più teoricamente stabili rispetto a range di estrazioni analizzati più contenuti ovvero quelle con RS <=1 . Il lavorone... consiste nel cercare dopo averle trovate un modo di ridurle a classe giocabile <= 10 mantenendo possibilmente lo stesso arco di attesa del gruppo base originante.
Ciao Tom , ti rispondo qui in pasticceria, per evitare di dare fastidio altrove.
Caro Tom, lungi da me l’idea di smorzare il tuo entusiasmo, era solo un modo di dire!
Come dice il detto : “gente allegra il ciel l’aiuta”, sarei pronto a scommettere che se sei fortunato non sarai abbandonato dalla fortuna nemmeno se ti giochi i numeri sulle targhe delle macchine prese a caso.
Gastone, cugino di Paperino, docet.
Da quel che dici mi sembra di capire che prima cerchi formazioni numeriche che hanno un determinato trend in un arco di estrazioni con RS <=1 e poi cerchi di ridurle a classe giocabile <= 10 nei tempi della formazione.
Scusami, passami la battuta, è quello che fanno tutti, ridurre i 90 numeri a quelli giocati in schedina.
E poi?
Cè chi vince e c’è chi perde, anche avendo le stesse probabilità a parità di numeri e sorte giocati.
La chiamano: ............ fortuna!
Chi sa qual è il segreto della fortuna?
Certo è che la fortuna non è per tutti.
Come dire, molti i chiamati ma pochi gli eletti !
Tom ha scritto:
come ha scritto anche happy..., significa centrare in qualche maniera in modo costante... una delle 1.5484550180347E+23 formazioni componibili in classe 28 by 90. Quindi non lo è affatto
28 numeri scelti a caso per ambo hanno probabiità di sortita di circa il 50% in un numero di prove congruo.
Scegliendo con i tuo sistema che percentuale di successo hai?
Ovviamente è tanto per dire, per scambiare piacevolmente qualche chiacchiera.
Un grande saluto circolare.
30/01/21 | napoli | 84 | giocare-- figura | > | 3 | > | esce | 75 | > | 3 colpo | 1 posizione |
27/02/21 | napoli | 50 | giocare-- figura | > | 5 | > | esce | 50 | > | 2 colpo | 3 posizione |
30/03/21 | napoli | 27 | giocare-- figura | > | 9 | > | esce | 27 | > | 1 colpo | 3 posizione |
29/04/21 | napoli | 18 | giocare-- figura | > | 9 | > | esce | 45 | > | 4 colpo | 1 posizione |
29/05/21 | napoli | 65 | giocare-- figura | > | 2 | > | esce | 38 | > | 3 colpo | 1 posizione |
29/06/21 | napoli | 76 | giocare-- figura | > | 4 | > | esce | 22 | > | 4 colpo | 3 posizione |
31/07/21 | napoli | 17 | giocare-- figura | > | 8 | > | esce | 71 | > | 1 colpo | 3 posizione |
31/08/21 | napoli | 77 | giocare-- figura | > | 5 | > | esce | 50 | > | 1 colpo | 1 posizione |
30/09/21 | napoli | 74 | giocare-- figura | > | 2 | > | esce | 20 | > | 2 colpo | 1 posizione |
30/10/21 | napoli | 36 | giocare-- figura | > | 9 | > | esce | 36 | > | 2 colpo | 1 posizione |
30/11/21 | napoli | 1 | giocare-- figura | > | 1 | > | esce | 28 | > | 3 colpo | 1 posizione |
30/12/21 | napoli | 32 | giocare-- figura | > | 5 | > | esce | 23 | > | 1 colpo | 3 posizione |
29/01/22 | napoli | 87 | giocare-- figura | > | 6 | > | esce | 15 | > | 4 colpo | 3 posizione |
26/02/22 | napoli | 14 | giocare-- figura | > | 5 | > | esce | 5 | > | 1 colpo | 1 posizione |
31/03/22 | napoli | 28 | giocare-- figura | > | 1 | > | esce | 64 | > | 1 colpo | 3 posizione |
30/04/22 | napoli | 66 | giocare-- figura | > | 3 | > | esce | 75 | > | 3 colpo | 1 posizione |
31/05/22 | napoli | 61 | giocare-- figura | > | 7 | > | esce | 79 | > | 2 colpo | 1 posizione |
30/06/22 | napoli | 26 | giocare-- figura | > | 8 | > | esce | 89 | > | 7 colpo | 3 posizione |
30/07/22 | napoli | 76 | giocare-- figura | > | 4 | > | esce | 58 | > | 1 colpo | 1 posizione |
30/08/22 | napoli | 67 | giocare-- figura | > | 4 | > | esce | 49 | > | 11 colpo | 3 posizione |
29/09/22 | napoli | 80 | giocare-- figura | > | 8 | > | esce | 62 | > | 3 colpo | 3 posizione |
29/10/22 | napoli | 66 | giocare-- figura | > | 3 | > | esce | 3 | > | 5 colpo | 3 posizione |
29/11/22 | napoli | 71 | giocare-- figura | > | 8 | > | esce | 8 | > | 8 colpo | 1 posizione |
31/12/22 | napoli | 58 | giocare-- figura | > | 4 | > | esce | 67 | > | 1 colpo | 3 posizione |
31/01/23 | napoli | 43 | giocare-- figura | > | 7 | > | esce | 16 | > | 3 colpo | 1 posizione |
28/02/23 | napoli | 89 | giocare-- figura | > | 8 | > | esce | 8 | > | 4 colpo | 1 posizione |
30/03/23 | napoli | 42 | giocare-- figura | > | 6 | > | esce | | > | | in gioco |
buona serata lotto tom75
vorrei avere uno script,
dove si prende all ultima estrazione mensile
il 5 estratto, su tutte le ruote, e si faccia la sua figura
da mettere in gioco sulla 1--3--posizione
per capire quale ruota e migliore x portare avanti
questa tipologia di gioco
io ho questa su napoli, ma vorrei
anche le altre ruote , grazie se vorrai aiutarmi
ti posto gli ultimi 2 anni di napoli
e vorrei un tuo giudizio sul metodo, e se ne vale la pena,
30/01/21 napoli 84 giocare-- figura > 3 > esce 75 > 3 colpo 1 posizione 27/02/21 napoli 50 giocare-- figura > 5 > esce 50 > 2 colpo 3 posizione 30/03/21 napoli 27 giocare-- figura > 9 > esce 27 > 1 colpo 3 posizione 29/04/21 napoli 18 giocare-- figura > 9 > esce 45 > 4 colpo 1 posizione 29/05/21 napoli 65 giocare-- figura > 2 > esce 38 > 3 colpo 1 posizione 29/06/21 napoli 76 giocare-- figura > 4 > esce 22 > 4 colpo 3 posizione 31/07/21 napoli 17 giocare-- figura > 8 > esce 71 > 1 colpo 3 posizione 31/08/21 napoli 77 giocare-- figura > 5 > esce 50 > 1 colpo 1 posizione 30/09/21 napoli 74 giocare-- figura > 2 > esce 20 > 2 colpo 1 posizione 30/10/21 napoli 36 giocare-- figura > 9 > esce 36 > 2 colpo 1 posizione 30/11/21 napoli 1 giocare-- figura > 1 > esce 28 > 3 colpo 1 posizione 30/12/21 napoli 32 giocare-- figura > 5 > esce 23 > 1 colpo 3 posizione 29/01/22 napoli 87 giocare-- figura > 6 > esce 15 > 4 colpo 3 posizione 26/02/22 napoli 14 giocare-- figura > 5 > esce 5 > 1 colpo 1 posizione 31/03/22 napoli 28 giocare-- figura > 1 > esce 64 > 1 colpo 3 posizione 30/04/22 napoli 66 giocare-- figura > 3 > esce 75 > 3 colpo 1 posizione 31/05/22 napoli 61 giocare-- figura > 7 > esce 79 > 2 colpo 1 posizione 30/06/22 napoli 26 giocare-- figura > 8 > esce 89 > 7 colpo 3 posizione 30/07/22 napoli 76 giocare-- figura > 4 > esce 58 > 1 colpo 1 posizione 30/08/22 napoli 67 giocare-- figura > 4 > esce 49 > 11 colpo 3 posizione 29/09/22 napoli 80 giocare-- figura > 8 > esce 62 > 3 colpo 3 posizione 29/10/22 napoli 66 giocare-- figura > 3 > esce 3 > 5 colpo 3 posizione 29/11/22 napoli 71 giocare-- figura > 8 > esce 8 > 8 colpo 1 posizione 31/12/22 napoli 58 giocare-- figura > 4 > esce 67 > 1 colpo 3 posizione 31/01/23 napoli 43 giocare-- figura > 7 > esce 16 > 3 colpo 1 posizione 28/02/23 napoli 89 giocare-- figura > 8 > esce 8 > 4 colpo 1 posizione 30/03/23 napoli 42 giocare-- figura > 6 > esce > in gioco
Buona Pasqua e Pasquetta a TuttiBuon pomeriggio. Tempo fa avevo recuperato uno script qui nel forum per l'elaborazione di un cruciverba ma con Spaziometria 1.6.41 mi da errore in NumeroCasuale. Ma credo che ce ne sono anche altri comandi che evidentemente non funzionano con Spaziometria.
Mi potreste dare una soluzione ?
grazie infinite
Codice:Option Explicit Dim aNumUsati Dim aColonne Dim aNumScelti Sub Main Dim nLato,nScelti Const nMinLato = 2 Const nMaxLato = 12 ReDim aRuote(1) ReDim aPoste(2) Dim Sorte,Colpi Dim idEstr Dim RuotaDiRil RuotaDiRil = BA_ aPoste(2) = 1 aRuote(1) = RuotaDiRil Sorte = 2 Colpi = 1 nLato = 5 nLato = Int(InputBox("Inserire la quantita di numeri per il lato del cruciverba","Lato Cruciverba",nLato)) If nLato < nMinLato Or nLato > nMaxLato Then MsgBox "Il lato dve essere compreso tra " & nMinLato & " e " & nMaxLato Exit Sub End If ReDim aDiagonali(nLato,nLato) Call CalcolaDiagonali(aDiagonali,nLato) For idEstr = EstrazioneIni To EstrazioneFin Step Colpi Call Messaggio("Estrazione " & idEstr) ReDim aNumScelti(0) Call AlimentaNumScelti(aNumScelti,idEstr,RuotaDiRil,nLato) Call GiocaCruciverba(aNumScelti,nLato,aDiagonali,aRuote,aPoste,Colpi,Sorte,idEstr) If ScriptInterrotto Then Exit For Next Call ScriviResoconto End Sub Sub AlimentaNumScelti(aNumScelti,idEstr,RuotaDiRil,nLato) Dim k,e,n,t Dim nNumDaTrov ReDim aB(90) t = 0 nNumDaTrov = nLato * nLato For k = idEstr To 1 Step - 1 For e = 1 To 5 n = Vert(Estratto(k,RuotaDiRil,e)) If aB(n) = False Then aB(n) = True t = t + 1 If t >= nNumDaTrov Then Exit For End If Next If t >= nNumDaTrov Then Exit For Next If t >= nNumDaTrov Then ReDim aNumScelti(t) t = 0 For k = 1 To 90 If aB(k) Then t = t + 1 aNumScelti(t) = k End If Next End If End Sub Sub GiocaCruciverba(aNumScelti,nLato,aDiagonali,aRuote,aPoste,Colpi,Sorte,idEstr) Dim r,c,k Dim n Dim s Dim nTentativi Dim bTrovato Dim nScelti Dim bUnaPresenzaSola Const nTentativiMax = 1000 bUnaPresenzaSola = False nScelti = UBound(aNumScelti) If nScelti >= nLato * nLato Then bUnaPresenzaSola = True End If Call DoEventsEx aNumUsati = ArrayNumeriToBool(aNumScelti) Do While bTrovato = False ReDim aNumeri(nLato,nLato) For r = 1 To nLato For c = 1 To nLato n = ScegliNumero(r,c,aNumeri,nLato,aDiagonali,bUnaPresenzaSola) If n = 0 Then Exit For aNumeri(r,c) = n Next If n = 0 Then Exit For Next If colonneDuplicate(aNumeri,nLato,aDiagonali) = False Then bTrovato = True Else nTentativi = nTentativi + 1 If nTentativi > nTentativiMax Then Exit Do End If If ScriptInterrotto Then Exit Do Call Messaggio("Cruciverba Generati " & nTentativi) DoEventsEx Loop For r = 1 To nLato ReDim aV(nLato) For c = 1 To nLato aV(c) = Format2(Int(aNumeri(r,c))) Next If r = 1 Then Call InitTabella(aV,,,6) Else Call AddRigaTabella(aV,,,6) End If Next If nTentativi > nTentativiMax Or colonneDuplicate(aNumeri,nLato,aDiagonali) Then Call Scrivi("ATTENZIONE CRUCIVERBA NON VALIDO",True,,,vbRed) Else Call CreaTabella End If For k = 1 To UBound(aColonne) ReDim aN(0) Call SplitByChar("0." & aColonne(k),".",aN) Call ImpostaGiocata(k,aN,aRuote,aPoste,Colpi,Sorte) Next Call Gioca(idEstr) End Sub Sub CalcolaDiagonali(aDiagonali,nLato) Dim r,c For r = 1 To nLato c = c + 1 aDiagonali(r,c) = True Next c = nLato + 1 For r = 1 To nLato c = c - 1 If aDiagonali(r,c) Then aDiagonali(r,c) = 1 Else aDiagonali(r,c) = True End If Next End Sub Function ScegliNumero(Riga,Colonna,aNumeri,nLato,aDiagonali,bUnaVoltaSola) Dim n Dim nPassaggi Do n = aNumScelti(NumeroCasuale(1,UBound(aNumScelti))) nPassaggi = nPassaggi + 1 If nPassaggi > 1000 Then n = 0 Exit Do End If If ScriptInterrotto Then n = 0 Exit Do End If Call DoEventsEx Loop While NumeroNonValido(n,Riga,Colonna,aNumeri,nLato,aDiagonali,bUnaVoltaSola) ScegliNumero = n End Function Function NumeroNonValido(Numero,Riga,Colonna,aNumeri,nLato,aDiagonali,bUnaVoltaSola) Dim k,r,c If Numero = 0 Then NumeroNonValido = True Exit Function End If If bUnaVoltaSola Then For r = 1 To nLato For c = 1 To nLato If aNumeri(r,c) = Numero Then NumeroNonValido = True Exit Function End If Next Next End If If aNumUsati(Numero) = False Then NumeroNonValido = True Exit Function End If For k = 1 To nLato If aNumeri(Riga,k) = Numero Then NumeroNonValido = True Exit Function End If Next For k = 1 To nLato If aNumeri(k,Colonna) = Numero Then NumeroNonValido = True Exit Function End If Next If aDiagonali(Riga,Colonna) Then 'If Riga = Colonna Or ((Riga = nLato/2)And (Colonna = nLato/2)) Then If Riga = Colonna Then c = Colonna + 1 For r = Riga To 1 Step - 1 c = c - 1 If aNumeri(r,c) = Numero Then NumeroNonValido = True Exit Function End If Next c = Colonna - 1 For r = Riga + 1 To nLato c = c + 1 If aNumeri(r,c) = Numero Then NumeroNonValido = True Exit Function End If Next End If If Riga <> Colonna Or aDiagonali(Riga,Colonna) = 1 Then c = Colonna - 1 For r = Riga To 1 Step - 1 c = c + 1 If aNumeri(r,c) = Numero Then NumeroNonValido = True Exit Function End If Next c = Colonna + 1 For r = Riga + 1 To nLato c = c - 1 If aNumeri(r,c) = Numero Then NumeroNonValido = True Exit Function End If Next End If End If End Function Function colonneDuplicate(aNumeri,nLato,aDiagonali) Dim nColonneTot Dim r,c,i Dim k,kk nColonneTot = nLato * 2 + 2 ReDim aColonne(nColonneTot) For r = 1 To nLato ReDim aN(nLato) For c = 1 To nLato aN(c) = aNumeri(r,c) Next i = i + 1 Call OrdinaMatrice(aN,1,1) aColonne(i) = StringaNumeri(aN,,True) Next For c = 1 To nLato ReDim aN(nLato) For r = 1 To nLato aN(r) = aNumeri(r,c) Next i = i + 1 Call OrdinaMatrice(aN,1,1) aColonne(i) = StringaNumeri(aN,,True) Next ReDim aN(nLato) c = 0 For r = 1 To nLato c = c + 1 aN(r) = aNumeri(r,c) Next i = i + 1 Call OrdinaMatrice(aN,1,1) aColonne(i) = StringaNumeri(aN,,True) ReDim aN(nLato) c = nLato + 1 For r = 1 To nLato c = c - 1 aN(r) = aNumeri(r,c) Next i = i + 1 Call OrdinaMatrice(aN,1,1) aColonne(i) = StringaNumeri(aN,,True) For k = 1 To nColonneTot - 1 For kk = k + 1 To nColonneTot If aColonne(k) = aColonne(kk) Then colonneDuplicate = True Exit Function End If Next Next For k = 1 To nColonneTot If Len(aColonne(k)) < nLato *2 +(nLato - 1) Then colonneDuplicate = True Exit Function End If Next End Function Sub SalvaFileColonne Dim sFile Dim k sFile = GetDirectoryTemp & "Cruciverba.csv" If EliminaFile(sFile) Then For k = 1 To UBound(aColonne) Call ScriviFile(sFile,Replace(aColonne(k),".",";"),,False) Next End If Call Scrivi("Le colonne da giocare sono state salvate nel file : " & sFile) End Sub [/ code]
Per lotto_tom75
Buon pomeriggio
Ho scaricato lo script 49 (42 d)
Ti disturbo per chiederti alcuni suggerimenti.
Se seii disponibile ti faccio un copia incolla dei dati che inserisco
in modo di poter essere piu chiaro nella richiesta di aiuto che ti chiedo.
In attesa di una tua gradita risposta ti saluto
Serpicoi