In fase di ampliamento e miglioramento,
s'è visto come sia possibile utilizzare direttamente l' indice del ciclo For-Next
Senza utilizzare una variabile apposita (come lo era "i" )
Allo stesso modo invece di avere
P = Posizione(Es,R,N)
If P > 0 Then
si può scrivere direttamente
If Posizione(Es,R,N) > 0 Then
Ma in questo modo non sappiamo più quale è la posizione "P"
vediamo come cercarla ... diciamo per semplicità più "manualmente".
ESTRATTO è l'istruzione per farlo ed una delle più utili per le ricerche.
Richiede il numero di Estrazione (Es) la Ruota (R) e la Posizione (P)
Dunque possiamo generare noi le 5 Posizioni utilizzando P come indice di un ciclo For-Next
For P = 1 to 5
E = Estratto (Es,R,P)
Scrivi E
Next
in questo modo però i 5 Estratti (uno ero ogni P) saranno scritti in 5 righe
Questo sostituisce StringaEstratti ma non è ordinato come lo era prima.
Assieme a questo "contro" abbiamo ottenuto la lettura delle 5 etichette dei 5 Estratti.
----
L'istruzione SCRIVI nel dialetto Basic di Spaziometria permette di concatenare
come prima si era detto e fatto con O = O & ...
Con Scrivi si ottiene qualcosa di simile e "più potente" (vedremo dopo) inserendo ,0,0
Scrivi 1,0,0
scrivi 2,0,1
scriverà "12"
Cioè il 2° "virgola-zero" di scrivi fa si che non si vada "a-capo" dopo aver scritto 1.
Pertanto, subito dopo dopo 1, verrà scritto 2.
Ed in questo caso essendoci ,0,1 si va a capo dopo che si è scritto: 12.
E' "complicato" sia da leggere che da (de)scrivere.
Ma, in realtà è semplicissimo ed è di ENORME utilità.
Così facendo si ha che :
For P = 1 to 5
E = Estratto (Es,R,P)
Scrivi Format2 ( E) & " ",0,0
Next
sostanzialmente sostituisce l'istruzione StringaEstratti.
Per mantenere una migliore impaginazione numeri sono scritti a 2 Cifre utilizzando il comando Format2.
Conoscendo sia il numero (N) sia l' Estratto (E) è possibile verificare se coincidono
ed applicare al numero da scrivere la "Formattazione Condizionale" da noi preferita.
Ad esempio in caso di uguaglianza E = N decidere di applicare ad esempio il colore rosso
e contestulmente memorizzare la posizione P (del numero N)
If E = N Then ColoreTesto 2
O = P & "°"
End If
Cosicché "O" contiene la posizione ed "E" viene scritto in rosso.
C'è ancora una cosa che si può fare prima di considerare terminato questo script.
Cercare gli Ambi che si sono formati in presenza del numero N.
Occorre predisporre un array con Dim A(90) per poter conteggiare quanti 1,2,3,4,...,89,90,
sono presenti assieme al numero N.
Contarli è semplicissimo: A(E) = A(E) +1 e quali siano gli estratti E li abbiamo letti, scritti ... colorati.
Terminato lo script le quantità di ogni singolo abbinamento deve semplicemente essere esplicitato (scritto).
Altrimenti rimangono in memoria senza essere scritti.
For E = 1 to 90
Scrivi A(E)
Next
Li scrive tutti e 90 compreso N.N che non è un ambo lottologicamente valido.
Ma ci conforta nel confermare la stessa quantità di Presenze (precedentemente calcolate).
Volendo escludere gli ambi che non sono caduti nel periodo considerato si può aggiungere
un semplice test-condizionale per escluderli.
Questa ultima parte diventa :
Codice:
Scrivi "AMBI",1
'Visualizzazione Abbinamenti AMBI
For E = 1 To 90
'If E <> N Then
If A(E) > 0 Then
Scrivi Format2(N) & "." & Format2(E) & " = " & A(E) & " Pres."
End If
'End If
Next
Si può notare eseguendo lo script che "AMBI" sarà scritto in grassetto.
Questo deriva dal aver posto "AMBI",1 dove aver scritto "virgola-uno" equivale al comando "in grassetto".
Analogamente ho inserito un "Titolo" ( con NomeRuota e Numero) in grassetto ed in colore rosso.
N,1,,,2 significa appunto: N , in grassetto , , , in Rosso.
Codice:
Option Explicit
Sub Main()
Dim Es ' Estrazione
Dim C ' Contatore
Dim R ' Ruota
Dim N ' Numero
Dim P ' Posizione
Dim O ' Output Posizione
Dim E ' Estratto
Dim A(90) 'Abbinamenti"
R = BA_
N = 7
Scrivi NomeRuota (R) & " Numero : " & N,1,,,2
Scrivi
For Es = EstrazioneFin - 200 To EstrazioneFin
If Posizione(Es,R,N) > 0 Then
C = C + 1
Scrivi C & " ",0,0
Scrivi DataEstrazione(Es) & " ",0,0
'Scrivi StringaEstratti(Es,R) & " ",0
For P = 1 To 5
E = Estratto(Es,R,P)
If E = N Then ColoreTesto 2 : O = P & "°"
Scrivi Format2(E) & " ",0,0
ColoreTesto 0
A(E) = A(E) + 1
Next
Scrivi O,,,,2
Scrivi String(30,"-")
End If
Next
Scrivi
Scrivi C & " Presenze."
Scrivi "AMBI",1
Scrivi
'Visualizzazione Abbinamenti AMBI
For E = 1 To 90
'If E <> N Then
If A(E) > 0 Then
Scrivi Format2(N) & "." & Format2(E) & " = " & A(E) & " Pres."
End If
'End If
Next
End Sub
