Novità

Devo passare un vettore ad una funzione x lo sviluppo integrale ma...

lotto_tom75

Advanced Premium Member
Questa è la funzione che dovrebbe analizzare il vettore passato...

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...

tipo-non-corrispondente-a-puntatore.jpg
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 :eek:🤖🧑‍🍳


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:
Ciao Tom
Questo codice o una sua parte l ho scritto io?
Credo che tu stia miscelando più script.
O più parti di script diversi.
Probabilmente aPuntatore non è un array o non accetta i valori che gli vuoi passare.
Ciao:)
 
Ciao Tom
Questo codice o una sua parte l ho scritto io?
Credo che tu stia miscelando più script.
O più parti di script diversi.
Probabilmente aPuntatore non è un array o non accetta i valori che gli vuoi passare.
Ciao:)

Ciao Ilegend :)

non saprei se lo hai scritto tu o un altro big scripter e si lo sto mettendo a cascata... in modo che mi ordini le formazioni finali ottenute da un altro di 2000 e passa righe :)

lo script di per sè funzionante da solo con i numeri immessi da tabella è quello x ordinare per il parametro voluto qualsiasi classe di formazioni <= 20 ovvero il seguente:

Codice:
Option Explicit
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
         'i = 0
         For k = nRiga To(nRiga + nQNumPerRiga) - 1 '(nQNumeri - nClasse) + nRiga
            ' i = i + 1
            ' i = (k - nRiga )+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
         Call Scrivi(Format2(k) & ") " & RimuoviLastChr(s,"."))
      Next
   End Sub
End Class
Sub Main
   Dim clSvi
   Dim nClasse
   Dim nSorte
   Dim k,j
   Dim sNumeri
   Dim idComb
   Dim nInizio,nFine
   Dim idValoreDaAna
   Dim sValoreUsato
   Dim CombTot
   Dim aRuote
   Set clSvi = New clsSviluppo
   Dim quantirisultati
   Dim Col_Ord
   Dim Tipo_Ord
   Dim QNS
   ReDim aNum(0)
   QNS = ScegliNumeri(aNum)
   nClasse = ScegliEsito(2,1,90)
   Call ScegliRuote(aRuote)
   nSorte = ScegliSorte
   idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)
   Col_Ord = CInt(InputBox("Colonna da ordinare (freq= 2; Rit= 3; RitMax= 4; Diff= 5; Incmax= 6).","colonna da ordinare ",3))
   Tipo_Ord = CInt(InputBox("Ordinamento (Crescente > 0 1; Decresc = 0).","Ordinamento ",1))
   nInizio = EstrazioneIni
   nFine = EstrazioneFin
   If nClasse > 0 And nSorte > 0 And nSorte <= nClasse And idValoreDaAna > 0 Then
      Call Messaggio("Sviluppo combinazioni di classe " & nClasse)
      CombTot = clSvi.InitSviluppo(aNum,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
      '    Call InitTabella(aTitoli)
      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)
         'Call AddRigaTabella(ADati)
         'Next
         'Call CreaTabella
         'Call CreaTabella(Col_Ord,Tipo_Ord)
         Dim ccolonna
         'Call OrdinaItemCollection(ADati,ADati(2),,, 1)
         Dim contatore
         'For Each ccolonna In ADati
         'Call OrdinaItemCollection(ADati,ADati(2),,,1)
         contatore = contatore + 1
         'Call StatisticaFormazioneTurbo(cColonna.aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFrq,EstrazioneIni,EstrazioneFin)
         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 Sub
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,1,"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


Il mio problema... è che se eseguo immettendo i numeri da tabella tutto ok... mentre se gli passo un vettore precedentemente creato... mi da quell'errore... tipo non corrispondente 'a puntatore' 🤬😤😭😀

A riprova di questo... ti posto un confronto eseguito tra due vettori perfettamente identici...

uno generato automaticamente... che da errore... (evidenziato IN ROSSO)
e l'altro creato con numeri immessi da tabella... che funziona... (evidenziato IN BLU)

|6.12.13.26.30.33.34.37.41.42.48.54.58.61.65.67.71.72.77.80.81.82.83.87|

E' arrivato il vettore integro? |6.12.13.26.30.33.34.37.41.42.48.54.58.61.65.67.71.72.77.80.81.82.83.87|

questo è anum |6.12.13.26.30.33.34.37.41.42.48.54.58.61.65.67.71.72.77.80.81.82.83.87|

le barre verticali.. | le ho messe solo nell'output per evidenzaire eventuali caratteri o spazi neii vettori...

Questo seguente è l'ordinamento eseguito passando
anum...

Combinazioni di classe 1 analizzate per punti 1 sulle ruote TO
La seguente lista mostra le prime Combinazioni In Base al valore di
Range analizzato [00001] [ 1 ] 07.01.1871 fino a [09996] [129] 28.10.2021
Estrazioni analizzate totali : 9996

formazione: 80 - FQ 578 - RA 63 - RS 134 - DIFF 71 - INCMAX 0 - contatore 1
formazione: 54 - FQ 564 - RA 34 - RS 171 - DIFF 137 - INCMAX 0 - contatore 2
formazione: 33 - FQ 557 - RA 31 - RS 109 - DIFF 78 - INCMAX 0 - contatore 3
formazione: 41 - FQ 582 - RA 30 - RS 119 - DIFF 89 - INCMAX 0 - contatore 4
formazione: 42 - FQ 607 - RA 29 - RS 89 - DIFF 60 - INCMAX 0 - contatore 5
formazione: 87 - FQ 545 - RA 28 - RS 103 - DIFF 75 - INCMAX 0 - contatore 6
formazione: 37 - FQ 587 - RA 27 - RS 104 - DIFF 77 - INCMAX 0 - contatore 7
formazione: 26 - FQ 549 - RA 27 - RS 150 - DIFF 123 - INCMAX 0 - contatore 8
formazione: 13 - FQ 542 - RA 24 - RS 161 - DIFF 137 - INCMAX 0 - contatore 9
formazione: 67 - FQ 553 - RA 23 - RS 112 - DIFF 89 - INCMAX 0 - contatore 10
formazione: 6 - FQ 569 - RA 23 - RS 117 - DIFF 94 - INCMAX 0 - contatore 11
formazione: 65 - FQ 539 - RA 22 - RS 132 - DIFF 110 - INCMAX 0 - contatore 12
formazione: 82 - FQ 588 - RA 21 - RS 128 - DIFF 107 - INCMAX 0 - contatore 13
formazione: 48 - FQ 595 - RA 21 - RS 137 - DIFF 116 - INCMAX 0 - contatore 14
formazione: 71 - FQ 553 - RA 18 - RS 135 - DIFF 117 - INCMAX 0 - contatore 15
formazione: 58 - FQ 523 - RA 18 - RS 106 - DIFF 88 - INCMAX 0 - contatore 16
formazione: 83 - FQ 554 - RA 16 - RS 92 - DIFF 76 - INCMAX 0 - contatore 17
formazione: 77 - FQ 517 - RA 13 - RS 94 - DIFF 81 - INCMAX 0 - contatore 18
formazione: 30 - FQ 598 - RA 12 - RS 135 - DIFF 123 - INCMAX 0 - contatore 19
formazione: 81 - FQ 608 - RA 7 - RS 113 - DIFF 106 - INCMAX 0 - contatore 20
formazione: 34 - FQ 541 - RA 5 - RS 89 - DIFF 84 - INCMAX 0 - contatore 21
formazione: 61 - FQ 557 - RA 4 - RS 116 - DIFF 112 - INCMAX 0 - contatore 22
formazione: 12 - FQ 570 - RA 2 - RS 118 - DIFF 116 - INCMAX 0 - contatore 23
formazione: 72 - FQ 511 - RA 1 - RS 112 - DIFF 111 - INCMAX 0 - contatore 24

Tempo trascorso: 00:00:44

👋🙂
 
Ultima modifica:
L array è composto da numeri o stringhe?
Se sono stringhe bisogna splittare.
Al momento mi viene in mente questo. Dovrei lanciare lo script e studiarlo.
Quello sopra è di luigi credo.
Uno script nasce ed è ottimizzato per risolvere un problema.
Adattarlo non è la soluzione migliore.
Domani se non sono troppo distrutto gli do un occhiata.
Oppure se passa luigi ti dice lui.
Notte :)
 
L array è composto da numeri o stringhe?
Se sono stringhe bisogna splittare.
Al momento mi viene in mente questo. Dovrei lanciare lo script e studiarlo.
Quello sopra è di luigi credo.
Uno script nasce ed è ottimizzato per risolvere un problema.
Adattarlo non è la soluzione migliore.
Domani se non sono troppo distrutto gli do un occhiata.
Oppure se passa luigi ti dice lui.
Notte :)

Da numeri
Comunque l'ho anche splittato...
I due vettori finali come vedi sopra (rosso e blu) sono identici...
Solo per qualche motivo se gli passo i numeri da tabella (vettore blu) li elabora correttamente...
mentre se glieli passo come vettore splittato... o diretto... (vettore rosso) nisba...

'Notte 👋🙂
 
Ultima modifica:
Ciao Tom
Questo codice o una sua parte l ho scritto io?
Credo che tu stia miscelando più script.
O più parti di script diversi.
Probabilmente aPuntatore non è un array o non accetta i valori che gli vuoi passare.
Ciao:)
È tipico del pasticcere
ma i dolci vengono buoni.

Tom X trovare il perché occorre leggerli e farli girare come dice ilegend.
 
Allora raga... dai e dai ce l'ho fatta da solo 🥳😄😁

ovviamente pasticciando... con array_push... 😬🤖🧑‍🍳

così...

Codice:
dim vettorexordinamentofinale
   dim vettorexordinamentofinale2
 
   vettorexordinamentofinale2 = Array(0)
 
   'ReDim vettorexordinamentofinale(UBound(vettorexlaverificaesiti))
 
   Call SplitByChar(StringaNumeri(vettorexlaverificaesiti),".",vettorexordinamentofinale)
 
   dim c
 
   for c=0 to ubound(vettorexordinamentofinale)
 
   'vettorexordinamentofinale2 = int(vettorexordinamentofinale(c))
 
  vettorexordinamentofinale2 = array_push(vettorexordinamentofinale2,int(vettorexordinamentofinale(c)))
 
 
   next
 
 
   scrivi "vxof2 " & stringanumeri(vettorexordinamentofinale2)
 
   'for c=0 to ubound(vettorexordinamentofinale2 )
 
   'scrivi "vxof2 " & vettorexordinamentofinale2(c)
 
   'next

a proposito... come si fa, se si può..., a caricare un vettore senza array_push? :unsure:

👋🙂
 
Ultima modifica:
Split lavora con le stringhe.

Quando si spezza una stringa si ottiengono 2 o piu stringhe.

I pezzi di stringhe, sono stringhe.

Un pezzo di una stringa più un pezzo di una stringa è una stringa.

Mentre i numeri sono numeri e non stringhe.

Se si divide un numero in 2 o piu parti, si ottengono 2 o più numeri.

La somma (differenza, moltiplicazione, divisione... ) di 2 o più numeri è un numero.

Per effettuare calcoli con i numeri ci vogliono dei numeri.

:)
 
Perché array_push e non a array_potter?
A mio parere è più magico in area hallowey.
Buona giornata Tom.
🤣🤣🤣🤣🤣🤣🤣🤣
Buon giorno ragazzi :)
Split lavora con le stringhe.

Quando si spezza una stringa si ottiengono 2 o piu stringhe.

I pezzi di stringhe, sono stringhe.

Un pezzo di una stringa più un pezzo di una stringa è una stringa.

Mentre i numeri sono numeri e non stringhe.

Se si divide un numero in 2 o piu parti, si ottengono 2 o più numeri.

La somma (differenza, moltiplicazione, divisione... ) di 2 o più numeri è un numero.

Per effettuare calcoli con i numeri ci vogliono dei numeri.

:)

La battuta di claudio8 non l'ho capita... o_O Me la spiegate? :LOL: Ad ogni modo good morning a tutti e 4 gli intervenuti e a chi ci leggerà...Io sono felice comunque di aver risolto il problema anche se con il prezzemolo.... array_push :ROFLMAO: Diciamo che sono + per le soluzioni pratiche... alla Mc Giver più che per quelle impeccabili... dal punto di vista di codice puro... 😄 👋🧑‍🍳
 
Codice:
Option Explicit
Sub Main
   Dim A,S,I
   A = "12.34.56"
   S = Split(A,".")
  
   A = "" 'Se A = Stringa
   For I = 0 To UBound(S)
      Scrivi A & "+" & S(I) & " = ",0,0
      A = A + (S(I))
      Scrivi A
   Next
    
   Scrivi
   A = 0 'Se A = Numero
   For I = 0 To UBound(S)
      Scrivi A & "+" & S(I) & " = ",0,0
      A = A + CInt(S(I)) 'Cint CONVERTE IN (numero) INTERO
      Scrivi A
   Next
End Sub

:)
 
Codice:
Option Explicit
Sub Main
   Dim A,S,I
   A = "12.34.56"
   S = Split(A,".")
 
   A = "" 'Se A = Stringa
   For I = 0 To UBound(S)
      Scrivi A & "+" & S(I) & " = ",0,0
      A = A + (S(I))
      Scrivi A
   Next
 
   Scrivi
   A = 0 'Se A = Numero
   For I = 0 To UBound(S)
      Scrivi A & "+" & S(I) & " = ",0,0
      A = A + CInt(S(I)) 'Cint CONVERTE IN (numero) INTERO
      Scrivi A
   Next
End Sub

:)

Grazie joe... ma questo lo sapevo... anche nella mia pasticceria... :D🧑‍🍳
Ad ogni modo, come sempre, l'hai spiegato in modo esemplare per chi vorrà capire la differenza tra stringhe e numeri... (y)

A me servirebbe comunque un altro ripasso sempre di tipo elementare... ma diverso... x argomento... ovvero come si caricano i vettori senza array_push... appunto.

Grazie mille se vorrai ripropormi(ci) un mirabile ripasso anche per quello.

👌👋🙂
 
È tipico del pasticcere
ma i dolci vengono buoni.
La battuta di claudio8 non l'ho capita... o_O Me la spiegate? :LOL: Ad ogni modo good morning a tutti e 4 gli intervenuti e a chi ci leggerà...Io sono felice comunque di aver risolto il problema anche se con il prezzemolo.... array_push :ROFLMAO: Diciamo che sono + per le soluzioni pratiche... alla Mc Giver più che per quelle impeccabili... dal punto di vista di codice puro... 😄 👋🧑‍🍳
Non te la prendere Tom
Lo sai che ti vogliamo bene e che tra noi c'è del tenero... :love::love::love: (non capire male)
Dolcetto o scherzetto” non ti dice niente...
ciao
 
Non te la prendere Tom
Lo sai che ti vogliamo bene e che tra noi c'è del tenero... :love::love::love: (non capire male)
Dolcetto o scherzetto” non ti dice niente...
ciao

🤣😂

Claudio8 a volte mi sembra di parlare arabo... 👳‍♀️specialmente tra noi... 😆 Ad esempio... La battuta non chiara per la quale non me la sono presa assolutamemte.. 😂 e' quella relativa a Harry Potter e non a quella che hai quotato relativa ai buoni dolci per la quale tra l'altro ti ho messo anche un bel like 👍. PS: a me piacciono le donne ma rispetto ovviamente i tuoi gusti.. Claudiotto 😉👋😀
 
ciao Tom :)
Joe ha gia dato la soluzione
te la metto in un piccola sub
Codice:
Sub Get_aNum( aVettoreVerificaEsiti,aNum,QNS)
Dim i
Dim aTemp:aTemp=Split(aVettoreVerificaEsiti,".")
QNS=UBound(aTemp)
ReDim aNum(QNS)
For i=1 To QNS
    aNum(i)=CInt(aTemp(i))
Next
End Sub
ora attento a dove inserirla
aVettoreVerificaEsiti=".1.2.3.4.5.6.7.8.9.10"
il punto iniziale serve per lo split
se nei tuoi txt non c e
allora fai
aTemp=Split("."&aVettoreVerificaEsiti,".")
mi sembra che riporti gli stessi risultati dell originale
ma quanti anni ha questo script?
 
ciao Tom :)
Joe ha gia dato la soluzione
te la metto in un piccola sub
Codice:
Sub Get_aNum( aVettoreVerificaEsiti,aNum,QNS)
Dim i
Dim aTemp:aTemp=Split(aVettoreVerificaEsiti,".")
QNS=UBound(aTemp)
ReDim aNum(QNS)
For i=1 To QNS
    aNum(i)=CInt(aTemp(i))
Next
End Sub
ora attento a dove inserirla
aVettoreVerificaEsiti=".1.2.3.4.5.6.7.8.9.10"
il punto iniziale serve per lo split
se nei tuoi txt non c e
allora fai
aTemp=Split("."&aVettoreVerificaEsiti,".")
mi sembra che riporti gli stessi risultati dell originale
ma quanti anni ha questo script?

Grazie mitico ilegend per adesso sei l'unico ad aver risposto alla mia domanda "come si caricano i vettori senza array_push" :D Per quanto riguarda l'età dello script che come hai ipotizzato tu forse è fatto direttamente dal Gran Maestro non saprei... So soltanto che lo trovo utilissimo per ordinare in modo rapidissimo i risultati statistici in base a qualsiasi parametro desiderato (ra fq incmax ecc...). Grazie ancora... per la demo di caricamento vettore senza prezzemolo... :LOL:;)(y)👋:)
 
Dim aNum ' lo dichiari cosi
aFiltro = ".1.2.3.4.5.6.7.8.9.10.11.12" ' questo è il tuo vettore che prendi dalla sub visto che è un suo parametro ,mi raccomando al punto altrimenti salta il primo elemento
Call Get_aNum( aFiltro,aNum,QNS)

' QNS = ScegliNumeri(aNum) ' non serve lo ricavo gia nella sub
nClasse = ScegliEsito(2,1,90)
Call ScegliRuote(aRuote)
nSorte = ScegliSorte
idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)
 
Dim aNum ' lo dichiari cosi
aFiltro = ".1.2.3.4.5.6.7.8.9.10.11.12" ' questo è il tuo vettore che prendi dalla sub visto che è un suo parametro ,mi raccomando al punto altrimenti salta il primo elemento
Call Get_aNum( aFiltro,aNum,QNS)

' QNS = ScegliNumeri(aNum) ' non serve lo ricavo gia nella sub
nClasse = ScegliEsito(2,1,90)
Call ScegliRuote(aRuote)
nSorte = ScegliSorte
idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)

Grazie a queste due tue chiarissime e gentilissime dritte ilegend ho risolto anche il problema automatico da caricamento file txt (y)👌🙏👋🙂 😉 Grazie davvero ilegend. Sei un grandissimo e ti stimo moltissimo sia come scripter che come persona che traspare da questo bel forum 💪👌😎
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 11 gennaio 2025
    Bari
    73
    43
    01
    58
    81
    Cagliari
    69
    60
    18
    02
    10
    Firenze
    25
    32
    18
    55
    54
    Genova
    48
    05
    40
    34
    69
    Milano
    10
    07
    70
    44
    79
    Napoli
    11
    89
    01
    34
    80
    Palermo
    37
    80
    82
    44
    77
    Roma
    78
    04
    38
    39
    56
    Torino
    08
    13
    30
    27
    24
    Venezia
    56
    75
    36
    18
    70
    Nazionale
    63
    83
    19
    31
    80
    Estrazione Simbolotto
    Bari
    35
    34
    12
    23
    20
Indietro
Alto