lotto_tom75
Advanced Premium Member
Questa è la funzione che dovrebbe analizzare il vettore passato...
Se utilizzo la tabella riattivando la riga
e immettendo i numeri dalla stessa...
la funzione fa correttamente il suo lavoro...
mentre se le passo il vettore dinamicamente... (prodotto dalla funzione precedente) come vettorexlaverificaesiti...
mi da il seguente errore...
Questo lo fa anche se cerco di passarle righe lette da un file txt...
Ho verificato che il vettore passato è privo di caratteri superflui tipo punti o virgole iniziali o finali... ma, nonostante questo..., il problema persiste...
Grazie per dirmi dove ho pasticciato
l'errore sembra si trovi da queste parti...
ps: ne va della mia salute mentale... già molto compromessa...
Codice:
Function sviluppaeordinaformazionefinale(vettorexlaverificaesiti,aruote,sorte)
Dim clSvi
Dim nclasse
Dim nSorte
Dim k,j
Dim sNumeri
Dim idComb
Dim nInizio,nFine
Dim idValoreDaAna
Dim sValoreUsato
Dim CombTot
Set clSvi = New clsSviluppo2
Dim Col_Ord
Dim Tipo_Ord
Dim QNS
ReDim aNum(0)
'QNS = ScegliNumeri(aNum)
nclasse = 1 ' ScegliEsito(1,1,90)
nSorte = 1 ' ScegliSorte
idValoreDaAna = 3 ' ScegliValoreDaAnalizzare(sValoreUsato)
Col_Ord = 3' CInt(InputBox("Colonna da ordinare (freq= 2; Rit= 3; RitMax= 4; Diff= 5; Incmax= 6).","colonna da ordinare ",3))
Tipo_Ord = 1' CInt(InputBox("Ordinamento (Crescente > 0 1; Decresc = 0).","Ordinamento ",1))
nInizio = EstrazioneIni
nFine = EstrazioneFin
Scrivi "E' arrivato il vettore integro? <font color=red>|" & StringaNumeri(vettorexlaverificaesiti) & "|</font>"
ReDim vettorexordinamentofinale(UBound(vettorexlaverificaesiti))
Call SplitByChar(StringaNumeri(vettorexlaverificaesiti),".",vettorexordinamentofinale)
If nclasse > 0 And nSorte > 0 And nSorte <= nclasse And idValoreDaAna > 0 Then
Call Messaggio("Sviluppo combinazioni di classe " & nclasse)
CombTot = clSvi.InitSviluppo(vettorexordinamentofinale,nclasse)
Call Messaggio("Lunghette totali da analizzare " & CombTot)
ReDim aCombMigliori(CombTot,6)
Call Messaggio("Statistica combinazioni in corso ")
ReDim aCol(nclasse)
Do While clSvi.GetComb(aCol) = True
Call AnalisiComb(aCol,aruote,nSorte,aCombMigliori,nInizio,nFine,idValoreDaAna)
k = k + 1
If k Mod 1 = 0 Then
Call Messaggio("Statistica combinazioni in corso " & k & " di " & CombTot)
Call AvanzamentoElab(1,CombTot,k)
If ScriptInterrotto Then Exit Do
End If
Loop
Call Messaggio("")
Call Scrivi("Combinazioni di classe " & nclasse & " analizzate per punti " & nSorte & " sulle ruote " & GetRuoteUsate(aruote))
Call Scrivi("La seguente lista mostra le prime " & quantirisultati & " Combinazioni In Base al valore di " & sValoreUsato)
Call Scrivi("Range analizzato " & GetInfoEstrazione(nInizio) & " fino a " & GetInfoEstrazione(nFine))
Call Scrivi("Estrazioni analizzate totali : " &(nFine + 1) - nInizio)
Call Scrivi
For k = 1 To UBound(aCombMigliori)
ReDim ADati(6)
ADati(1) = aCombMigliori(k,4)
ADati(2) = aCombMigliori(k,1)
ADati(3) = aCombMigliori(k,2)
ADati(4) = aCombMigliori(k,3)
ADati(5) = aCombMigliori(k,5)
ADati(6) = aCombMigliori(k,6)
Dim ccolonna
Dim contatore
contatore = contatore + 1
Dim diff
If ADati(5) <= 10 Then
Call Scrivi("formazione: " & ADati(1) & " -" & " FQ " & ADati(2) & " -" & " RA " & ADati(3) & " -" & " RS " & ADati(4) & " -" & diff & " <font color=red bgcolor=yellow>" & ADati(5) & " -" & " INCMAX " & ADati(6) & "</font>" & " -" & " contatore " & contatore)
Else
Call Scrivi("formazione: " & ADati(1) & " -" & " FQ " & ADati(2) & " -" & " RA " & ADati(3) & " -" & " RS " & ADati(4) & " - DIFF " & ADati(5) & " -" & " INCMAX " & ADati(6) & " -" & " contatore " & contatore)
End If
'End If
Next
'Next
Call Scrivi
Call Scrivi("Tempo trascorso: " & TempoTrascorso)
Call Scrivi
Else
MsgBox "Selezionare la classe di sviluppo e la Sorte , " & _
"si ricorda che la Sorte non puo essere maggiore della classe di sviluppo " & _
"e che bisogna scegliere quale valore statistico considerare per " & _
"alimentare la lista delle prime N Combinazioni desiderate da mostrare in output "
End If
End Function
Sub AnalisiComb(aNum,aRuote,Sorte,aCombMig,nInizio,nFine,idValoreDaAna)
Dim k,j
Dim Rit
Dim RitMax
Dim Freq
Dim Valore
Dim diff
Dim RetIncrRitMax
Call StatisticaFormazioneTurbo(aNum,aRuote,Sorte,Rit,RitMax,RetIncrRitMax,Freq,nInizio,nFine)
diff = RitMax - Rit
Select Case idValoreDaAna
Case 1
Valore = Freq
Case 2
Valore = Rit
Case 3
Valore = RitMax
End Select
For k = 1 To UBound(aCombMig)
If Valore >= aCombMig(k,0) Then
For j = UBound(aCombMig) To(k + 1) Step - 1
aCombMig(j,0) = aCombMig(j - 1,0)
aCombMig(j,1) = aCombMig(j - 1,1)
aCombMig(j,2) = aCombMig(j - 1,2)
aCombMig(j,3) = aCombMig(j - 1,3)
aCombMig(j,4) = aCombMig(j - 1,4)
aCombMig(j,5) = aCombMig(j - 1,5)
aCombMig(j,6) = aCombMig(j - 1,6)
Next
aCombMig(k,0) = Valore
aCombMig(k,1) = Freq
aCombMig(k,2) = Rit
aCombMig(k,3) = RitMax
aCombMig(k,4) = StringaNumeri(aNum)
aCombMig(k,5) = diff
aCombMig(k,6) = RetIncrRitMax
Exit For
End If
Next
End Sub
Function ScegliSorte()
ReDim aVoci(4)
aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"
ScegliSorte = ScegliOpzioneMenu(aVoci,0,"Scegli Sorte") + 1
End Function
Function ScegliValoreDaAnalizzare(sValore)
ReDim aVoci(4)
Dim i
aVoci(0) = "Frequenza"
aVoci(1) = "Ritardo"
aVoci(2) = "Ritardo massimo"
aVoci(3) = "Differenza Aurea"
aVoci(4) = "IncMax"
i = ScegliOpzioneMenu(aVoci,1,"Quale valore considerare per l'ordinamento ? ")
sValore = aVoci(i)
ScegliValoreDaAnalizzare = i + 1
End Function
Function GetRuoteUsate(aRuote)
Dim k
Dim s
For k = 1 To UBound(aRuote)
s = s & SiglaRuota(aRuote(k)) & " "
Next
GetRuoteUsate = Trim(s)
End Function
Se utilizzo la tabella riattivando la riga
Codice:
'QNS = ScegliNumeri(aNum)
e immettendo i numeri dalla stessa...
la funzione fa correttamente il suo lavoro...
mentre se le passo il vettore dinamicamente... (prodotto dalla funzione precedente) come vettorexlaverificaesiti...
mi da il seguente errore...
Questo lo fa anche se cerco di passarle righe lette da un file txt...
Ho verificato che il vettore passato è privo di caratteri superflui tipo punti o virgole iniziali o finali... ma, nonostante questo..., il problema persiste...
Grazie per dirmi dove ho pasticciato
l'errore sembra si trovi da queste parti...
Codice:
CombTot = clSvi.InitSviluppo(vettorexordinamentofinale,nclasse)
Call Messaggio("Lunghette totali da analizzare " & CombTot)
ReDim aCombMigliori(CombTot,6)
Call Messaggio("Statistica combinazioni in corso ")
ReDim aCol(nclasse)
Do While clSvi.GetComb(aCol) = True
ps: ne va della mia salute mentale... già molto compromessa...
Ultima modifica: