Novità

Come estrapolare da un'analisi di tipo integrale solo il valore di fq max

lotto_tom75

Advanced Premium Member
Come posso trasformare questa riga di codice

Codice:
Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq,inizio,counterrange)
If(RetRit1 >= 0 And retfreq >= 2600) Then

In modo tale che invece di mostrarmi in output tutte le risultanze con retfreq >= 2600 mi mostri solo quella con fq max? (es. solo quella con fq 2780 nn conoscendo ovviamente a priori la sua esistenza... e sapendo che per ogni elaborazione può essere diverso, come valore massimo, ogni volta...)

In sostanza l'if del codice soprastante dovrebbe diventare qualcosa del tipo...

Codice:
Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq,inizio,counterrange)
If(RetRit1 >= 0 And retfreq >= valoremassimodinamicodifrequenzarilevato) Then

Es. di output ottenuto senza la modifica richiesta

.06.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 1 RS: 29 INCMAX: 0 FQ: 2603 RUOTA: Cagliari Diff 28 sorte: 2
.29.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 29 INCMAX: 0 FQ: 2607 RUOTA: Cagliari Diff 24 sorte: 2
.30.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 27 INCMAX: 0 FQ: 2601 RUOTA: Cagliari Diff 22 sorte: 2
.32.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 27 INCMAX: 0 FQ: 2601 RUOTA: Cagliari Diff 22 sorte: 2
.42.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 29 INCMAX: 0 FQ: 2600 RUOTA: Cagliari Diff 24 sorte: 2
.47.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 25 INCMAX: 0 FQ: 2617 RUOTA: Cagliari Diff 20 sorte: 2
.51.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 24 INCMAX: 0 FQ: 2616 RUOTA: Cagliari Diff 19 sorte: 2
.60.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 29 INCMAX: 0 FQ: 2623 RUOTA: Cagliari Diff 24 sorte: 2
.65.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 27 INCMAX: 0 FQ: 2605 RUOTA: Cagliari Diff 22 sorte: 2

Es. di output con un'unica risultanza a FQ MAX e "pulito delle altre risultanze" e relativo all'output di esempio soprastante che dovrei ottenere con la modifica richiesta

.60.72.73.74.75.76.77.78.80.81.82.83.84.85.87.88.89.90 RA: 5 RS: 29 INCMAX: 0 FQ: 2623 RUOTA: Cagliari Diff 24 sorte: 2


:unsure:

Questo seguente è il mio tentativo ma purtroppo mi carica il vettore solo dell'ultimo valore di fq analizzato... ?

Codice:
Dim contatorexinserimentofrq

      For k = 2 To 2 'RuoteSelezionate
         aRuoteTmp(1) = k
      Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq,inizio,counterrange)


     ReDim Valorifrq(0)
     Dim retfreqmax
  
     For contatorexinserimentofrq = 0 To  UBound(Valorifrq)
     Valorifrq (contatorexinserimentofrq) = retfreq '(contatorexinserimentofrq)
     Next

     retfreqmax = MassimoV(Valorifrq)
next

In buona sostanza non riesco a popolare il vettore valorifrq, dimensionato dinamicamente, con tutti i valori di freq rilevati dall'analisi ???. Una volta fatto questo dovrei essere riuscito a fare quanto mi sarei proposto grazie alla funzione MassimoV ?

Forse mi sono ricordato adesso come poter fare... ovvero posso provare ad implementare e utilizzare la funzione array_push ???
 
Ultima modifica:
:cry: :)

Purtroppo anche con la function array_push ottengo l'inserimento dell'array di un solo parametro fq per volta... non mantenendo mai quelli precedentemente inseriti... e quindi non posso applicare la funzione MassimoV all'intero array ma solo all'ultimo elemento rilevato dall'analisi... Inoltre anche se riuscissi ad inserire tutti gli elementi di fq e anche a rilevare poi quello di valore massimo non saprei come "legare" quest'ultimo alla corrispondente lunghetta esaminata da mostrare a video...

Provando ad affrontare il problema... da un altro punto di vista forse molto + chiaro e definito, per tutti i top scripter eventualmente in ascolto... che mi volessero e potessero dare una mano, dovrei riuscire a modificare questo script in modo che invece di mostrare tutti i risultati mostri solo quello di valore massimo (dinamico e sempre diverso) di frequenza:

Codice:
      Option Explicit
      Sub Main
      Dim k,y
      Dim Classe
      Dim aCol
      ReDim aNum(90)
      Dim i
      Dim nSorte,Fine,RetRit1,QuantitaNumeriScelti,aRuoteSel,RuoteSelezionate,RetRitMax,RetIncrRitMax,RetFreq,Inizio
      Dim ColTot
      'By Lotto_tom75 - Rilevatore su ruote separate e file txt di parametri voluti per qualsiasi sorte per qualsiasi classe presente nel txt importato
      Dim sfile
      sfile = ScegliFile(".\",".txt","lunghette.txt")
      ReDim aRuoteSel(12)
      RuoteSelezionate = ScegliRuote(aRuoteSel)
      Call Scrivi(" ---------------------------------------------------------------- ")
      Call Scrivi(" Le ruote sottostanti nella ricerca vengono considerate SEPARATE! ")
      Call Scrivi(" ---------------------------------------------------------------- ")
      Scrivi
      Call Scrivi(" Elaborazione effettuata con archivio lotto aggiornato al  " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
      Scrivi
      For k = 1 To RuoteSelezionate
      Call Scrivi("Scelta ruota " & NomeRuota(aRuoteSel(k)) & " - " & SiglaRuota(aRuoteSel(k)))
      Next
      Scrivi     
      Scrivi  
      Dim contatore
      Call Messaggio("Lettura file di testo")
      ReDim aRighe(0)
      Call LeggiRigheFileDiTesto(sfile,aRighe)
      For y = 0 To UBound(aRighe)
      If aRighe(y) <> "" Then
      ReDim aNum(0)
      'Call SplitByChar("." & aRighe(y),".",aNum)
      Call SplitByChar("." & aRighe(y),".",aNum)
      contatore = contatore + 1
      nSorte = 2
      ReDim aRuoteTmp(1)
      For k = 1 To RuoteSelezionate
      aRuoteTmp(1) = aRuoteSel(k)
      Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)
      Dim Diff
      Diff = RetRitMax - RetRit1
      If(RetRit1 >= 0 And RetFreq >= 0) Then
      Call Scrivi(StringaNumeri(aNum) & " RA: " & RetRit1 & " RS: " & RetRitMax & " INCMAX: " & RetIncrRitMax & " FQ: " & RetFreq & " RUOTA: " & NomeRuota(aRuoteSel(k)) & " Diff " & Diff & " sorte: " & nSorte)
      End If
      Call AvanzamentoElab(0,UBound(aRighe),contatore)
      Dim x
      If ScriptInterrotto Then Exit For
      Next
      End If
      Next
      Call Scrivi
      Call Scrivi("Tempo trascorso: " & TempoTrascorso)
      End Sub

TNX :)
 
Dunque... ce l'ho quasi fatta... ?

Implementando una collection di questo tipo:

Codice:
For Each clsN In Coll
      ReDim aValue(9)
 
      aValue(1) = clsN.numero
      aValue(2) = clsN.aRuote
      aValue(3) = clsN.nSorte
      aValue(4) = clsN.nritardo
      aValue(5) = clsN.RetRitMax
      aValue(6) = clsN.RetRitIncrRitMax
      aValue(7) = clsN.RetFreq
      aValue(8) = clsN.difforo
      aValue(9) = clsN.contatore
  
      Call AddRigaTabella(aValue)

      Call CreaTabella(7,0,1)

   Next

Adesso mi rimarrebbe di capire solamente come poter salvare e mostrare a video solo l'ultimo valore mostrato alla fine del lungo report ordinato grazie alla collection... ovvero appunto in questo specifico caso solo quello con il valore massimo di frequenza...

Come posso estrapolare solo quello? :unsure:
 
Ciao legend :) ho fatto proprio in quel modo ho ordinato tutto con la collection solo che non riesco a prelevare o il primo o l'ultimo valore della stessa...

c'è qualcosa di simile a ubound utilizzato per i vettori che si possa utilizzare per estrapolare l'ultimo valore della collection ordinata che tu sappia oppure un altro modo per farlo?

" Una volta ordinato scrivi la prima riga " << come faccio a fare questo...
Oppure come faccio a scrivere in output "l'ultima riga"

Sia l'una o l'altra soluzione andrebbe bene...

Thanksss :)

ps: Mi servirebbe di sapere anche se e come è possibile togliere i bordi alla tabella ordinata in quanto mi generano solo pesantezza di calcolo e una fastidiosa finestra di dialogo che mi chiede se voglio visualizzare tutti i valori ordinati o solo 100... e alla quale devo rispondere no se voglio vederli tutti...



Es. visivo... dell'output

65.67.68.69.72.73.74.75.76.77.78.80.81.83.84.85.87.88.89.90​
ruota:Cagliari​
2​
0​
21​
0​
3200​
21​
2551​
32.67.68.69.72.73.74.75.76.77.78.80.81.83.84.85.87.88.89.90​
ruota:Cagliari​
2​
0​
21​
0​
3207​
21​
1849​
47.67.68.69.72.73.74.75.76.77.78.80.81.83.84.85.87.88.89.90​
ruota:Cagliari​
2​
0​
21​
0​
3207​
21​
2341​
60.67.68.69.72.73.74.75.76.77.78.80.81.83.84.85.87.88.89.90​
ruota:Cagliari​
2​
0​
17​
0​
3220
17​
2531​


nella riga sottostante io dovrei visualizzare la riga che sopra riporta il valore di fq max 3220 evidenziato in rosso e non quella che invece riporta con fq 3164 e che rappresenta solo l'ultima riga del file txt analizzato...

Ruota​
Lunghetta​
Freq​
Rit.Att​
Max Sto​
InCr​
Sorte di Verifica​
CA​
66.67.68.69.72.73.74.75.76.77.78.80.81.83.84.85.87.88.89.90​
3164​
0​
22​
0​
Ambo​
 
Codice:
For Each clsN In Coll
      ReDim aValue(9)
      aValue(1) = clsN.numero
      aValue(2) = clsN.aRuote
      aValue(3) = clsN.nSorte
      aValue(4) = clsN.nritardo
      aValue(5) = clsN.RetRitMax
      aValue(6) = clsN.RetRitIncrRitMax
      aValue(7) = clsN.retfreq
      aValue(8) = clsN.difforo
      aValue(9) = clsN.contatore
      Call AddRigaTabella(aValue)
   Next
Loop
End If
End If
Next

Call Scrivi ("Ultima FQ rilevata da file txt : " & retfreq)

Call OrdinaMatriceTurbo(Coll,1,aValue(7))  ' questo ordinamento x fq crescente sembra non 'funzionare... ma molto probabilmente non so come si usa questa function... ?

Scrivi
Call Scrivi ("formazione mostrata dopo ordinamento turbo " &  aValue(1) & " fq " & aValue(7)) ' questa 'riga mi mostra sempre erroneamente l'ultima riga analizzata da file txt... invece di quella con fq max.
Scrivi

'Call CreaTabella(7,2,0)  << se attivo questo tipo di ordinamento con la tabella con i bordi mi ordina tutto correttamente ma ci impiega comuqnue troppo tempo... e alla fine non so comunque come prelevare l'ultimo o il primo risultato della tabella ordinata...

?
 
Breaking Tom News :)

Codice:
For Each clsN In Coll
      ReDim aValue(9)
      aValue(1) = clsN.numero
      aValue(2) = clsN.aRuote
      aValue(3) = clsN.nSorte
      aValue(4) = clsN.nritardo
      aValue(5) = clsN.RetRitMax
      aValue(6) = clsN.RetRitIncrRitMax
      aValue(7) = clsN.retfreq
      aValue(8) = clsN.difforo
      aValue(9) = clsN.contatore
      Call AddRigaTabella(aValue)

      'Call OrdinaMatrice(Coll,1)
      'Call Scrivi(clsN.retfreq & " - " & clsN.numero & " - " & clsN.nritardo)

   Next
      'Call OrdinaMatriceTurbo(Coll,1,aValue(7))
Loop
End If


      'Call OrdinaMatrice(Coll,1,7)
      'Call Scrivi(clsN.retfreq & " - " & clsN.numero & " - " & clsN.nritardo)

End If

Call OrdinaMatriceTurbo(Coll,1,7)

Next


Call CreaTabella(7,-1,0,2,0)

Con questo code riesco finalmente ad evidenziare velocemente una sola riga con il valore di fq + alta! :)

Sono a dir poco entusiasta di esserci riuscito e pure da solo ?

Mi rimane solo il problema di salvare questo output dinamico (prima e unica riga della tabella) in qualche modo in modo da poterlo utilizzare... per una successiva verifica automatica...

In sostanza adesso non so come prelevare il valore dell'unica riga di tabella mostratami correttamente a video... :unsure:


Qualche suggerimento al riguardo? Grazieee :)

Più specificatamente...

Adesso ho questo output corretto... dove nella tabella con unica riga mi viene correttamente mostrato la lunghetta con la frequenza + alta...

... ecc...
FQ rilevata: 3173
FQ rilevata: 3156
FQ rilevata: 3133
FQ rilevata: 3112
FQ rilevata: 3150
FQ rilevata: 3179
...ecc...

Formazione​
Ruota​
Sorte​
Ritardo​
Ritardo Massimo​
Incremento di RItardo Massimo​
Frequenza​
Diff​
Counter​
60.65.67.68.69.72.73.74.76.77.78.80.81.82.83.84.85.87.88.89
ruota:Cagliari​
2​
2​
17​
0​
3205
15​
2537​


Adesso mi rimane solo da capire come poter "recuperare" in una stringa il valore della prima cella di tabella soprastante ovvero la stringa numerica relativa al valore di frequenza massimo rilevato.

Grazie infinite a chi dei top scripters eventualmente in ascolto mi mostrerà come poter fare ?
 
Ultima modifica:
Cercando nella guida ho trovato queste due funzioni:

StringaNumeriDaMatrice

e

MatriceNumToVetNum

che potrebbero essere proprio quelle necessarie a leggere le colonne da tabella e strasformarle in stringa nel primo caso e in vettore nel secondo...

Solo che provando ad utilizzarle mi da sempre errore "tipo non corrispondente..."

Qualcuno/a dei grandi scripters tipo i legend, magia, joe, beppignello ecc... , senza scomodare il maestro luigi, mi saprebbe postare qualche esempio o applicarle direttamente al mio caso esposto sopra?

Grazie

:)

Qui di seguito il mio tentativo andato a vuoto... ?

Codice:
dim StringaNumerivoluti

StringaNumerivoluti = StringaNumeriDaMatrice(Coll,1,".",false)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 14 gennaio 2025
    Bari
    41
    25
    12
    73
    55
    Cagliari
    54
    20
    48
    32
    67
    Firenze
    75
    23
    68
    10
    38
    Genova
    33
    27
    81
    70
    64
    Milano
    68
    01
    64
    86
    87
    Napoli
    47
    75
    45
    10
    21
    Palermo
    55
    86
    33
    53
    70
    Roma
    88
    78
    61
    06
    07
    Torino
    76
    08
    23
    61
    82
    Venezia
    25
    15
    49
    21
    81
    Nazionale
    70
    10
    32
    78
    07
    Estrazione Simbolotto
    Bari
    07
    14
    28
    45
    31
Indietro
Alto