Novità

Se volessi filtrare solo il dato con RA MIN o FQ MAX in automatico senza sapere a priori che valori avranno tutte le risultanze...

lotto_tom75

Advanced Premium Member
Esempio di studio reale ma già sfaldatosi a colpo:

Data elaborazione: 3-10-2019

Scelta ruota Nazionale - NZ

.04.19.73.74.75.80.81.82.85.86 RA: 220 RS: 220 INCMAX: 0 FQ: 26 RUOTA: Nazionale Diff 0 sorte: 3
.04.57.71.73.74.75.80.81.82.85 RA: 222 RS: 222 INCMAX: 0 FQ: 21 RUOTA: Nazionale Diff 0 sorte: 3

.05.25.57.58.60.62.66.67.68.69 RA: 406 RS: 406 INCMAX: 0 FQ: 15 RUOTA: Nazionale Diff 0 sorte: 3
.05.62.71.73.74.75.80.81.82.85 RA: 295 RS: 295 INCMAX: 0 FQ: 24 RUOTA: Nazionale Diff 0 sorte: 3
.08.36.56.57.58.60.62.66.67.68 RA: 283 RS: 283 INCMAX: 0 FQ: 22 RUOTA: Nazionale Diff 0 sorte: 3
.10.19.28.29.30.31.36.39.40.41 RA: 385 RS: 385 INCMAX: 0 FQ: 21 RUOTA: Nazionale Diff 0 sorte: 3
.21.26.31.36.39.40.41.42.44.45 RA: 341 RS: 341 INCMAX: 0 FQ: 16 RUOTA: Nazionale Diff 0 sorte: 3

.42.57.71.73.74.75.80.81.82.85 RA: 222 RS: 222 INCMAX: 0 FQ: 21 RUOTA: Nazionale Diff 0 sorte: 3

Tempo trascorso: 00:00:36



Filtro utilizzato: retrit1 >= 0 and diff=0 and retincrritmax=0
Sorte di ricerca: 3

Ad esempio in questo caso se volessi filtrare e mostrare in automatico in output solo la riga avente valore di RA MINORE e/o quella con FQ MAGGIORE, che in questo caso fortuito coincidono... e che per evidenziarla maggiormente ho riportato a differenza delle altre in modo non barrato, come potrei fare senza conoscere a priori ovviamente i valori risultanti nell'output? :unsure:

In sostanza, invece di avere l'output sopra generato, sempre seguendo l'esempio soprastante, avrei bisogno di ottenere solo questa riga:

.04.19.73.74.75.80.81.82.85.86 RA: 220 RS: 220 INCMAX: 0 FQ: 26 RUOTA: Nazionale Diff 0 sorte: 3

Grazie mille a beppignello, magia o agli altri super scripters che mi indicheranno una via per ottenere quanto sopra riportato :)

PS: L'esempio di output sopra riportato (con archivio aggiornato al 3-10-2019) è solo indicativo anche se riferito ad una estrazione passata (quella del 5-10-2019) già sfaldatasi questa volta addirittura in terno 73-80-82 in 10ina a colpo su RTU (nz).
 
Ultima modifica:
B

Beppignello

Guest
io userei questo sistema:

le varie combinazioni elencate nell'esempio da te sono 8 righe.

costruisci una key che contenga formattato il ritardo e la frequenza, secondo le loro grandezze
formattastringa(ritardo,"0000")
formattastringa(frequenza,"0000")
key = formattastringa(ritardo,"0000") & formattastringa(frequenza,"0000")

riempirei una arrays con tutte le combinazioni( 8 nel tuo esempio)

una volta terminata il loop di creazione e rintracciamento delle combinazioni

farei eseguire una ordinamatrice per il campo key, in forma ascendente o discendente

se ascendente avrai come elemento 1 della arrays, il ritardo minore e minore frequenza
se discendente avrai come elemento 1 della arrays, il ritardo maggiore e maggiore frequenza

se deve entrare a fare parte della key anche incremento max o il dif lo aggiungi alla key

perchè ti servirà per fare distinzione in fase di ordinamento.
 

lotto_tom75

Advanced Premium Member
Ciao Beppignello :) grazie per la dritta.

Ho cercato di seguirla... ma ricorrendo ad una strada leggermente... diversa visto che il concetto e applicazione di KEY e MATRICE non li ho ancora proprio ben assimilati... :oops::rolleyes:o_O:cautious::sneaky:

Ho trovato nella dir TEST del programma il code dello script: test-ordina-matrice-piu-colonne.ls

L'ho epurato... dalle righe che ritenevo "superflue"

Sono riuscito in qualche modo.. a collegarlo al mio output da elaborare... (aNum per intenderci)

Sono riuscito a creare la tabella ordinabile con le righe riportanti i giusti valori delle formazioni e dei parametri rilevati...

MA...

Non sono riuscito ad ordinare i risultati per la colonna (RA, FQ ecc..) desiderata
Non sono riuscito ad estrapolare solo una riga che abbia o RA MAX o FQ MAX ecc...
Non sono riuscito ad ottimizzarne l'output in modo che mostri i titoli della tabella solo una volta...


Ecco il codice aggiunto che mi funzia eccetto i punti sopra riportati ;)

Codice:
Function Ordinarisultati(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq)

   Dim Inizio,Fine
   Dim k,e
   Dim Rit,RitMax,Freq,IndConv,nDaFare
   Dim aRuote(1)
   Dim idColOrdinamento
   Dim sOrdinamento
   Dim sColInteressate
   Dim diff

   Inizio = EstrazioneIni
   Fine = EstrazioneFin
   aRuote(1) = aRuote
   nDaFare =(Fine + 1) - Inizio
   If nDaFare <= 0 Then Exit Function
   ' possibili tipi di ordinamento  levare il rem ad una sola riga alla volta
   'idColOrdinamento =1 '  Numero naturale
   idColOrdinamento = 2 '  Ritardo
   'idColOrdinamento =3 '  Ritardo Max
   'idColOrdinamento =4 '  Freq
   'idColOrdinamento =5 '  IndiceConv
   'idColOrdinamento =6 '  Ritardo - RitMax
   'idColOrdinamento =7 ' IndiceConv - Ritardo
   'idColOrdinamento = 8 ' IndiceConv - Ritardo - Frequenza
   ' attenzione ricordarsi di aggiornare la stringa in funzione del valore prefissato per idColOrdinamento
   'sOrdinamento = "IndiceConv - Ritardo - Frequenza"
   sOrdinamento = "Ritardo"
   'sColInteressate = "5,2,4"
   sColInteressate = "2"
   ReDim aValori(2,90) ' matrice dell'output: righe e valori...
   ' con un ciclo riempio la matrice con i valori della statistica


  For k = 1 To UBound(aNum)

     'ReDim aNum(0)
    '  aNum() = k

   'Scrivi
    'Call Scrivi(aNum(k))
   'Scrivi

  Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq)


  diff = RetRitMax - RetRit1

  'Call Scrivi(StringaNumeri(aNum) & " RA: " & RetRit1 & " RS: " & RetRitMax & " INCMAX: " & RetIncrRitMax & " FQ: " & retfreq & " RUOTA: " & "ruotadecisa" & " diff " & diff & " sorte: " & nSorte)
   'Call Scrivi (StringaNumeri(aNum))

      IndConv = Round(Dividi(RetRit1,Dividi(nDaFare,retfreq)),4)
      'aValori(k,1) = aNum(k) ' indice 1 contiene il numero In analisi
      aValori(k,1) = StringaNumeri(aNum)
      aValori(k,2) = RetRit1 ' indice 2 contiene il ritardo
      aValori(k,3) = RetRitMax ' indice 3 contiene il ritardo max
      aValori(k,4) = retfreq' indice 4 contiene la frequenza
      aValori(k,5) = IndConv ' indice 5 contiene l'indice di convenienza


Next


   Call OrdinaMatrice(aValori,- 1,2)

   'Next

   ReDim aTitoli(5)
   aTitoli(1) = "Numero"
   aTitoli(2) = "Ritardo"
   aTitoli(3) = "RitardoMax"
   aTitoli(4) = "Frequenza"
   aTitoli(5) = "IndiceConv"
   Call InitTabella(aTitoli)
   For k = 2 To UBound(aValori)
      ReDim aRiga(5)
      For e = 1 To 5
         aRiga(e) = aValori(k,e)
      Next
      Call AddRigaTabella(aRiga)
   Next
   Call CreaTabella

'Next


End Function

ed ecco tre delle prime righe di output che ottengo, corrette ripeto per analisi dei valori ma incomplete e da ottimizzare ancora per quanto riguarda ordinamento, scelta di un'unica riga e rimozione dei titoli ripetuti per ogni riga...

Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
8​
84​
229​
0,189​
Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.03.05​
1​
49​
228​
0,0235​
Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.05.06​
1​
49​
248​
0,0256​
:unsure::rolleyes::)
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
Ciao Claudio, il tipo di tabella che mi hai suggerito mi risolverebbe il discorso dell'ordinamento in effetti ma avendo già provato mi lascia comunque gli altri due problemi che ho al momento ovvero:

Non sono riuscito ad estrapolare solo una riga che abbia o RA MAX o FQ MAX ecc...
Non sono riuscito ad ottimizzarne l'output in modo che mostri i titoli della tabella solo una volta...

Tabellaordinabile poi richiede l'attivazione della funzione excel e activex vanificandomi anche l'automazione totale... che vado inseguendo... :)

Inoltre con tabellaordinabile per adesso non mi mostra nemmeno i valori al suo interno.. perchè non riesco ad utilizzarla... correttamente... :unsure:

Per provarla ho sostituito creatabella con creatabellaordinabile ma non mi funzia... :cautious::) Addirittura quando clicco su attiva del controllo della stessa spesso mi chiude il programma... o_O
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
Il filtraggio che avrei in mente claudio, deve essere di tipo modulare e potersi applicare attraverso l'apposita function condivisa poco sopra al post n.3 appunto a qualsiasi script di desideri. Ecco perchè non c'è in questo caso alcuno script soprastante o meglio ve ne sono di molti possibili che qui sarebbe inutile e fuorviante caricare per questo tipo di richiesta. Anum e i relativi parametri, che dovrebbero poter cambiare mantenendo comunque intatta l'azione della function, li puoi prendere da qualsiasi tipo di elaborazione. L'importante è che alla fine si abbia una tabella con le caratteristiche sopra indicate che io purtroppo al momento sono riuscito a costruire con le mancanze di cui sopra. Ciao :)
 
B

Beppignello

Guest
per l'intestazione puoi fare così, per non averle che si ripetono per ogni riga

racchiudere in un if .. end id

prima delle righe intestazione metti
if ctz = 0 then

e subito dopo le righe che hai di intestazione

ctz = 1

end if

le metto solo per il primo ciclo poi non le mette piu'
 

lotto_tom75

Advanced Premium Member
per l'intestazione puoi fare così, per non averle che si ripetono per ogni riga

racchiudere in un if .. end id

prima delle righe intestazione metti
if ctz = 0 then

e subito dopo le righe che hai di intestazione

ctz = 1

end if

le metto solo per il primo ciclo poi non le mette piu'

Buongiorno Bepp, ho provato a mettere il code che hai detto qui:

Codice:
   ReDim aTitoli(5)
   Dim ctz

If ctz = 0 Then
   aTitoli(1) = "Numero"
   aTitoli(2) = "Ritardo"
   aTitoli(3) = "RitardoMax"
   aTitoli(4) = "Frequenza"
   aTitoli(5) = "IndiceConv"
   ctz = 1
End If
  
'   Dim ctz
'
'If ctz = 0 Then
Call InitTabella(aTitoli)
'   ctz = 1
'End If

In entrambe le parti relative ai titoli... :unsure:

Ma è come se non avessi messo nulla... :rolleyes::D

Penso che l'altro problema ovvero l'ordinamento mancante.. sia dovuto proprio a questa scissione in più titoli e tabelle... Quindi risolvendo questo problema dei titoli dovrei poter risolvere anche quello dell'ordinamento forse... :confused: Tu che dici? :)
 
B

Beppignello

Guest
io credo che il tuo script
entra più volte nella function
e quindi ripete più volte sia l'intestazione che l'elaborazione .

credo che è quello che c'è fuori è quello che fa la differenza

perchè il tuo precedente messaggio riportava questo next in fondo
che poi hai remmato
non mi sembra che c'è una ripetizione delle intestazioni.


'Next

End Function



poi potresti semplicemente modificare

call creatabella
in
Call CreaTabellaordinabile
 

lotto_tom75

Advanced Premium Member
io credo che il tuo script
entra più volte nella function
e quindi ripete più volte sia l'intestazione che l'elaborazione .

credo che è quello che c'è fuori è quello che fa la differenza

perchè il tuo precedente messaggio riportava questo next in fondo
che poi hai remmato
non mi sembra che c'è una ripetizione delle intestazioni.


'Next

End Function



poi potresti semplicemente modificare

call creatabella
in
Call CreaTabellaordinabile

Ciao Beppignello, dunque visto che ritieni possa trattarsi di un errore a monte ecco qua anche il codice che richiama la funzione ordinarisultati che vorrei ottimizzare...

Ovviamente anche se qui è impostato come function si può trasformare la prima parte in sub main per poterlo eseguire da questo punto con un qualsiasi file txt come base.

Codice:
Function analizzatorefilematricetxt
 

      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 = ".\matrice-numerica-desiderata.txt"


         ReDim aRuoteSel(12)

         RuoteSelezionate = ScegliRuote(aRuoteSel)

 

         Call Scrivi(" ---------------------------------------------------------------- ")

         Call Scrivi(" Le ruote sottostanti nella ricerca vengono considerate SEPARATE ")

         Call Scrivi(" ---------------------------------------------------------------- ")


Dim fin

fin = EstrazioneFin


ReDim aTitoli(5)

Dim ctz



If ctz = 0 Then

   aTitoli(1) = "Numero"

   aTitoli(2) = "Ritardo"

   aTitoli(3) = "RitardoMax"

   aTitoli(4) = "Frequenza"

   aTitoli(5) = "IndiceConv"

   ctz = 1

End If


Call InitTabella(aTitoli)


Call Scrivi

Call Scrivi("<font size=3>Data elaborazione: " & giorno(fin) & "-" & Mese(fin) & "-" & Anno(fin) & "</font>")

Call 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)



      contatore = contatore + 1


      nSorte = 1


      ReDim aRuoteTmp(1)


      Dim key


      'Dim contatore,c

      Dim c,v,s

      'contatore = 0



      For k = 1 To RuoteSelezionate

    

         aRuoteTmp(1) = aRuoteSel(k)

 

      Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq)


      Dim diff



      diff = RetRitMax - RetRit1



      Dim filtroutilizzato



      filtroutilizzato = "retrit1 >= 0  and diff=0 and retincrritmax=0"



      If(RetRit1 >= 0) Then ' And diff = 0 And RetIncrRitMax = 0) Then ' And RetIncrRitMax = 0) Then


      End If



      Call AvanzamentoElab(0,UBound(aRighe),contatore)



      Dim x


      If ScriptInterrotto Then Exit For



      Next


      End If



        If ScriptInterrotto Then Exit For



        Call



Ordinarisultati(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq)



      Next





      Call Scrivi


      Scrivi


      Scrivi


      Call Scrivi("Tempo trascorso: " & TempoTrascorso)

      Scrivi

      Scrivi

      Call Scrivi("Filtro utilizzato: " & filtroutilizzato)

      Call Scrivi("Sorte di ricerca: " & nSorte)


      End Function


Function Ordinarisultati(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq)



   Dim Inizio,Fine

   Dim k,e

   Dim Rit,RitMax,Freq,IndConv,nDaFare

   Dim aRuote(1)

   Dim idColOrdinamento

   Dim sOrdinamento

   Dim sColInteressate

   Dim diff



   Inizio = EstrazioneIni

   Fine = EstrazioneFin

   aRuote(1) = aRuote

   nDaFare =(Fine + 1) - Inizio

   If nDaFare <= 0 Then Exit Function

   ' possibili tipi di ordinamento  levare il rem ad una sola riga alla volta

   'idColOrdinamento =1 '  Numero naturale

   idColOrdinamento = 2 '  Ritardo

   'idColOrdinamento =3 '  Ritardo Max

   'idColOrdinamento =4 '  Freq

   'idColOrdinamento =5 '  IndiceConv

   'idColOrdinamento =6 '  Ritardo - RitMax

   'idColOrdinamento =7 ' IndiceConv - Ritardo

   'idColOrdinamento = 8 ' IndiceConv - Ritardo - Frequenza

   ' attenzione ricordarsi di aggiornare la stringa in funzione del valore prefissato per idColOrdinamento

   'sOrdinamento = "IndiceConv - Ritardo - Frequenza"

   sOrdinamento = "Ritardo"

   'sColInteressate = "5,2,4"

   sColInteressate = "2"

   ReDim aValori(2,90) ' matrice dell'output: righe e valori...

   ' con un ciclo riempio la matrice con i valori della statistica


  For k = 1 To UBound(aNum)


  Call StatisticaFormazioneTurbo(aNum,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,retfreq)


  diff = RetRitMax - RetRit1


      IndConv = Round(Dividi(RetRit1,Dividi(nDaFare,retfreq)),4)

      'aValori(k,1) = aNum(k) ' indice 1 contiene il numero In analisi

      aValori(k,1) = StringaNumeri(aNum)

      aValori(k,2) = RetRit1 ' indice 2 contiene il ritardo

      aValori(k,3) = RetRitMax ' indice 3 contiene il ritardo max

      aValori(k,4) = retfreq' indice 4 contiene la frequenza

      aValori(k,5) = IndConv ' indice 5 contiene l'indice di convenienza


Next


   Call OrdinaMatrice(aValori,- 1,2)


   For k = 2 To UBound(aValori)

      ReDim aRiga(5)

      For e = 1 To 5

         aRiga(e) = aValori(k,e)

      Next

      Call AddRigaTabella(aRiga)

   Next

   Call CreaTabella



'Next


End Function

Con questo ultimo aggiornamento... mi fa una cosa ancora più strana ma si avvicina un pò al risultato della tabella che vorrei avere ovvero... mi crea una tabella progressivamente sempre + completa ripetendomi i titoli in ciascuna fase di montaggio della stessa fino a completarla correttamente con l'ultimo ciclo di costruzione...

Andrebbe anche bene solo che l'ordinamento non lo sente minimamente nemmeno nell'ultima tabella che crea in modo corretto.

Se sostituisco creatabella con creatabellaordinabile poi lo script si chiude addirittura o_O:)

Sotto ti lascio un esempio di quello che crea progressivamente con anche la tabella finale nell'ultimo ciclo di operazioni:

Data elaborazione: 8-10-2019

Scelta ruota Nazionale - NZ



Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
9​
84​
229​
0,2126​
Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
9​
84​
229​
0,2126​
.03.04​
14​
80​
242​
0,3496​
Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
9​
84​
229​
0,2126​
.03.04​
14​
80​
242​
0,3496​
.04.05​
2​
42​
264​
0,0545​
Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
9​
84​
229​
0,2126​
.03.04​
14​
80​
242​
0,3496​
.04.05​
2​
42​
264​
0,0545​
.05.06​
2​
49​
248​
0,0512​
Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
9​
84​
229​
0,2126​
.03.04​
14​
80​
242​
0,3496​
.04.05​
2​
42​
264​
0,0545​
.05.06​
2​
49​
248​
0,0512​
.06.07​
30​
71​
242​
0,7491​
ecc...



fino alla creazione della tabella finale sotto riportata che è CORRETTA dal punto di vista strutturale e di dati presenti ma NON ORDINABILE secondo la colonna voluta...

Numero​
Ritardo​
RitardoMax​
Frequenza​
IndiceConv​
.02.03​
9​
84​
229​
0,2126​
.03.04​
14​
80​
242​
0,3496​
.04.05​
2​
42​
264​
0,0545​
.05.06​
2​
49​
248​
0,0512​
.06.07​
30​
71​
242​
0,7491​
.07.08​
4​
48​
239​
0,0986​
.08.09​
4​
40​
264​
0,109​
.09.10​
3​
34​
274​
0,0848​
.10.12​
3​
45​
256​
0,0792​
.12.13​
46​
55​
252​
1,196​
.13.14​
5​
40​
247​
0,1274​
.14.16​
5​
38​
248​
0,1279​
.16.17​
9​
43​
284​
0,2637​
.17.19​
20​
39​
281​
0,5799​
.19.20​
20​
54​
242​
0,4994​
.20.21​
5​
62​
233​
0,1202​
.21.22​
5​
53​
254​
0,131​
.22.25​
10​
46​
278​
0,2868​
.25.26​
10​
72​
261​
0,2693​
.26.27​
19​
57​
256​
0,5019​
.27.28​
2​
66​
258​
0,0532​
.28.30​
0​
43​
243​
0​
.30.34​
0​
64​
245​
0​
.34.36​
3​
52​
256​
0,0792​
.36.39​
7​
46​
271​
0,1957​
.39.40​
22​
43​
271​
0,6151​
.40.41​
6​
44​
239​
0,148​
.41.42​
6​
48​
241​
0,1492​
.42.44​
4​
43​
258​
0,1065​
.44.45​
4​
55​
248​
0,1024​
.45.47​
8​
38​
247​
0,2039​
.47.50​
13​
45​
265​
0,3554​
.50.52​
17​
50​
274​
0,4806​
.52.53​
16​
60​
248​
0,4094​
.53.55​
16​
67​
238​
0,3929​
.55.56​
3​
35​
248​
0,0768​
.56.57​
3​
64​
257​
0,0796​
.57.58​
22​
60​
256​
0,5811​
.58.59​
5​
35​
254​
0,131​
.59.60​
5​
51​
245​
0,1264​
.60.61​
0​
36​
253​
0​
.61.62​
0​
59​
256​
0​
.62.63​
15​
41​
237​
0,3668​
.63.66​
26​
53​
262​
0,7028​
.66.67​
0​
46​
272​
0​
.67.68​
0​
45​
254​
0​
.68.70​
2​
49​
251​
0,0518​
.70.71​
9​
42​
244​
0,2266​
.71.75​
3​
42​
224​
0,0693​
.75.78​
3​
41​
238​
0,0737​
.78.80​
1​
35​
284​
0,0293​
.80.81​
1​
51​
281​
0,029​
.81.82​
1​
45​
257​
0,0265​
.82.85​
1​
41​
251​
0,0259​
.85.86​
15​
50​
248​
0,3838​
.86.87​
15​
108​
233​
0,3606​
.87.88​
26​
59​
203​
0,5446​
.88.89​
2​
48​
240​
0,0495​
.89.90​
2​
40​
270​
0,0557​


Io a questo punto vorrei che mi mostrasse solo l'ultima tabella qui sopra e che questa fosse ordinabile...

Ripeto se sostituisco creatabella con creatabellaordinabile purtroppo non ottengo nulla e mi si chiude lo script a fine elaborazione forse perchè la struttura di tabella ordinabile con l'inclusione degli activex excel rende il tutto troppo pesante per questa elaborazione...
 
Ultima modifica:
B

Beppignello

Guest
io proverei a spostare call InitTabella(aTitoli) sotto a ctz=1, Dentro nell' IF ..End if

ti dovrebbe togliere tutte le intestazioni ripetute.

ctz = 1

End If

Call InitTabella(aTitoli)
 

lotto_tom75

Advanced Premium Member
fatto:

Codice:
If ctz = 0 Then
   aTitoli(1) = "Numero"
   aTitoli(2) = "Ritardo"
   aTitoli(3) = "RitardoMax"
   aTitoli(4) = "Frequenza"
   aTitoli(5) = "IndiceConv"
   ctz = 1
Call InitTabella(aTitoli)
End If

MA NOTHING... :oops::(
 

lotto_tom75

Advanced Premium Member
Alla fine ce l'ho fatta! o_O??:D:cool:?

Riprendendendo un .ls x creare tabella e modificandolo piano piano secondo le mie esigenze...

Ecco il risultato ?

Grazie a Beppignello e claudio per i loro interventi "illuminanti" ;)

Codice:
Sub Main
  
   ReDim aTitoli(7) ' titoli tabella
   Dim k ' controllo cicli
   Dim rt ' ruota
   Dim idEstr 'estrazione inizio analisi

' preimposto i titoli delle colonne
If ctz = 0 Then
   aTitoli(1) = "Formazione"
   aTitoli(2) = "Ruota"
   aTitoli(3) = "Ritardo"
   aTitoli(4) = "Ritardo Max"
   aTitoli(5) = "Differenza"
   aTitoli(6) = "Frequenza"
   aTitoli(7) = "Incremento Massimo Di Ritardo"
    Call InitTabella(aTitoli,1,,,5)
   ctz = 1
   'Call InitTabella(aTitoli,1,,,5)
  End If
  
'
'   If ctz = 0 Then
'   aTitoli(1) = "Numero"
'   aTitoli(2) = "Ritardo"
'   aTitoli(3) = "RitardoMax"
'   aTitoli(4) = "Frequenza"
'   aTitoli(5) = "IndiceConv"
'   ctz = 1
'End If
  

        ' inizializzo la tabella
   'Call InitTabella(aTitoli,1,,,5)

  
    ' faccio scorrere un testo che indica da quale estrazione parte l'analisi
   'Call TestoInBandaPassante("Prova TABELLA per modulo ordina colonne da implementare in destroyer  aggiornamento sviluppo alla data del " & GetInfoEstrazione(idEstr))
  
'     ' inizializzo la tabella
'   Call InitTabella(aTitoli,1,,,5)
  
   ' imposto l'estrazione sull'ultima disponibile
   idEstr = EstrazioniArchivio
  
    Dim sFile
  ' Dim k,y
   Dim nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFreq,inizio,Fine
   sFile = ScegliFile("c:\temp",".txt","QuartineUnNumPerDecina.txt")
   inizio = 5000
   Fine = 8641
   ReDim aRuote(1)
   aRuote(1) = BA_
   nSorte = 2
   Call Messaggio("Lettura file di testo")
   ReDim aRighe(0)
   Call LeggiRigheFileDiTesto(sFile,aRighe)
  
  

  
  
   For k = 0 To UBound(aRighe)
      If aRighe(k) <> "" Then
         ReDim aNum(0)
         Call SplitByChar("." & aRighe(k),".",aNum)
        
         'Call StatisticaFormazione(aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFreq ,Inizio,Fine)
         Call StatisticaFormazioneTurbo(aNum,aRuote,nSorte,RetRit,RetRitMax,RetIncrRitMax,RetFreq) 'RitardoCombinazioneTurbo(aRuote,aNum,nSorte,Fine)
         If RetRit > 500 Then
            Call Scrivi(aRighe(k) & " rit : " & RetRit & " rit max: " & RetRitMax)
         End If
      End If
      If k Mod 100 = 0 Then
         Call Messaggio("Colonna : " & k)
         If ScriptInterrotto Then Exit For
         Call AvanzamentoElab(0,UBound(aRighe),k)
      End If
   'Next


Dim Stringanumbers
Stringanumbers = CStr(aRighe(k))
Scrivi "la legge questa stringa? " & Stringanumbers

  
  

  
  
'   ' preimposto i titoli delle colonne
'   aTitoli(1) = "Formazione"
'   aTitoli(2) = "Ruota"
'   aTitoli(3) = "Ritardo"
'   aTitoli(4) = "Ritardo Max"
'   aTitoli(5) = "Differenza"
'   aTitoli(6) = "Frequenza"
'   aTitoli(7) = "Incremento Massimo Di Ritardo"

'        ' inizializzo la tabella
'   Call InitTabella(aTitoli,1,,,5)





   ' faccio un ciclo dove calcolo il ritardo sulle 10 ruote di tutti i 90 numeri
   ' mano mano aggiungo una nuova riga alla tabella


   'For rt = 1 To 10 ' ciclo ruote
      'For k = 1 To 90 ' ciclo numeri
         ' preimposto un array di comodo per creare la nuova riga da aggiungere alla tabella
         ReDim aValori(7) ' abbiamo 3 titoli quindi anche qui dimensioniamo con 3 colonne
        
         aValori(1) = Stringanumbers ' numero
         aValori(2) = NomeRuota(aRuote(1)) ' SiglaRuota(aRuote)' nome ruota
         aValori(3) = RetRit'CStr(RetRit) ' RitardoEstratto(k,idEstr,rt) ' valore del ritardo di quel numero su quella ruota
         aValori(4) = RetRitMax'CStr(RetRitMax) ' RitardoEstratto(k,idEstr,rt) ' valore del ritardo di quel numero su quella ruota
         aValori(5) = Differenza(RetRitMax,RetRit)'CStr(Differenza(RetRitMax,RetRit)) ' RitardoEstratto(k,idEstr,rt) ' valore del ritardo di quel numero su quella ruota
         aValori(6) = RetFreq'CStr(RetFreq) ' RitardoEstratto(k,idEstr,rt) ' valore del ritardo di quel numero su quella ruota
         aValori(7) = RetIncrRitMax'CStr(RetIncrRitMax) ' RitardoEstratto(k,idEstr,rt) ' valore del ritardo di quel numero su quella ruota
        
        
         ' con questo blocco if coloro le righe che agguiungo in funzione del loro ritardo
         'If aValori(3) >= 0 And aValori(3) <= 30 Then
            Call AddRigaTabella(aValori,Bianco_,"right")
           
            'Call CreaTabella(3,0)'(3) ' alimenta dall'alto in basso  ordina per RIT decrescente... OK!  :)

   Next
  
    Call CreaTabella(3,0)'(3) ' alimenta dall'alto in basso  ordina per RIT decrescente... OK!  :)
 
  
End Sub
 

lotto_tom75

Advanced Premium Member
Adesso però mi servirebbe di poter estrapolare solo la riga a RA MAX o quella a RA MIN o quella a FQ MAX o quella a FQ MIN tra tutte quelle ordinate per poterla salvare in un file txt e procedere poi con ulteriori verifiche automatiche... Come potrei fare per attuare questa "estrapolazione dell'unica risultanza" di volta in volta generata in run time?

Grazie anticipate a beppignello, magia o chi mi da un mano con questo step di salvataggio selettivo dell'unica riga con valore minore o maggiore tra tutte le risultanti che sono riuscito ad ordinare :)
 
  • Like
Reazioni: joe

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 28 marzo 2024
    Bari
    49
    73
    67
    86
    19
    Cagliari
    64
    36
    37
    02
    04
    Firenze
    66
    27
    44
    90
    17
    Genova
    09
    44
    78
    85
    19
    Milano
    70
    14
    47
    38
    27
    Napoli
    80
    29
    28
    45
    39
    Palermo
    54
    59
    78
    47
    62
    Roma
    17
    22
    49
    52
    88
    Torino
    71
    35
    75
    74
    60
    Venezia
    40
    84
    02
    63
    29
    Nazionale
    08
    13
    44
    69
    85
    Estrazione Simbolotto
    Firenze
    06
    35
    16
    18
    05

Ultimi Messaggi

Alto