Novità

NUOVO AMBIENTE SCRIPT AREA TECNICA

  • Creatore Discussione Creatore Discussione LuigiB
  • Data di inizio Data di inizio
ipotesi da lasciar perdere , prima di tutto la dll dovrebbe essere portabile u altri sistemi e non creod lo sia. I programmini verticali che si basano sulla libreria li puoi comunque fare in visualstudio.Abbiamo sceto Tb soprattutto perchè è molto piu leggero e molto meno complesso di visualstudio ...
 
Luigi non ho avuto modo di utilizzarla quindi forse dico una fesseria.
L elenco dei concorsi di uscita non c è.?
Visto che l ottiene insieme ai ritardi si potrebbe inserire? È fondamentale per capire le estrazioni coperte, e anche per non dover ciclare tutte le estrazioni.
Se voglio cercare un ambo
Faccio così
Dim aambo(90)
Aambo(88)=1
Aambo(90)=1
For idestr=1 to fin
Getarraynumeriruota ( idestr,r,aE)
Punti=0
For p=1 to 5
If aaamb(ae(p))=1 then punti=punti+1
Next
If punti=2 then
Codice mio
End if
Next


Invece
Se faccio
Elenco ritardi turbo
For idestr=1 to ubound(aId)-1
Ini= Aid(idestr) +1
Fin= aid(idestr)+ncolpi
' posso utilizzare statisticaesito
' oppure fare il ciclo
For i= ini to fin
Next
Next
Insomma non vado a fare il ciclo di tutto l archivio perché ho già le estrazioni preparate.
Se hai potenziato tutte le altre funzioni, perché non potenziare anche questa?
Cmq non l ho utilizzata magari fa già quanto ho scritto.
 
c'è l'id estrazione dove è avvenuta la sorte richiesta o maggiore , attenzione a no nconfondere elncoritardi con elencouscite.

elencoritrdi se fa 10 ruote appena trova un esito resetta i lritardo e continua l'analisi
elenco uscite registra le uscite du tutte le ruote coinvolte
 
Ok quindi sono due funzioni distinte diversamente dalla vecchia elencoritardi che restituiva tutti i ritardi e il concorso di uscita.
Poi scarico l ultima dll e ci studio sopra.
Grazie come sempre.
 
elenco uscite registra tutte le uscite nell'array che ti ritorna

elenocritardi calcola i ritardi quindi se tu hai 10 ruote e sulla prima è sortita la sorte previst a il ritardo viene registrato , si resetta le ruote ancora da controlalre di quella estrazione non vengono piu controlate e si passaa contare il prossimo ritardo

in tuti i casi per ogni valore riportato ell'arrya che ti torna hai

iddestrazione
ritardo
ruota
numeri
posizioni
sorte
 
Buongiorno, ritornando sul wayne's grid ho trovato questo esempio:

link alla pagina github

link al progetto tB basato sul GridView per visualizzare una tipica pagina delle proprieta' di qualche risorsa, in winzozz style...

Spero possa esservi utile. Buona continuazione


1676452427123.png

Addendum:

Dopo che avete scaricato questo progetto, dovete pero' guardare all'esempio 6 (tra quelli inclusi in TB nelle beta che state usando) e cercando dove indica la freccia verde, per trovare i due metodi indispensabili per popolare o modificare il grid, per esempio Get_CellText o Set_CellText ecc, etc...
Cercare nell'intero progetto.

1676453937455.png
 
Ultima modifica:
Codice:
Dim k As Long
    Dim Sorte As Long = CInt(InputBox("sorte di verifica ", , 2))
    ReDim aN(0) As Long  'Array(1, 2, 3, 4, 5, 6, 7)
    'Dim aRuote As Variant = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
    ReDim aruote(0) As Long
    aruote = ScegliRuote
    Dim Ris As STRUCT_VERIFICAESITO_RISULTATO
    Dim aTrovati () As STRUCT_STATISTICHE_TROVATI
    Dim colpidiricerca As Long
    Dim es As Long
    Dim esini As Long
    Dim esfin As Long
    Dim colpomassimo As Long
    colpomassimo = 0
    Dim casipositivi As Long
    Dim casinegativi As Long
    Dim casiincorso As Long
    Dim numerodivoltecheicolpidiricercasonostatisuperati As Long
    numerodivoltecheicolpidiricercasonostatisuperati = 0
    casipositivi = 0
    casinegativi = 0
    casiincorso = 0
    Dim colpirimanentiminimirispettocolpidiricerca As Long
    Dim colpirimanentiminimirispettocolpomassimo As Long
    colpirimanentiminimirispettocolpidiricerca = esfin
    colpirimanentiminimirispettocolpomassimo = esfin
    Dim colpirimanentiinteressanti As Integer
    Dim formazioneconcolpirimanentiminimiok As String
    Dim quanteestrazioniverificare As Long
    quanteestrazioniverificare = CInt(InputBox("quante ultime estrazioni verificare ", , 100))
    Dim classedisviluppo As Long
    classedisviluppo = CInt(InputBox("classe di sviluppo ", , 10))
    Dim colonnesviluppate As Long
    Dim cln As Long
    colpidiricerca = CInt(InputBox("colpi di ricerca ", , 3))
    Dim dafileodatabella As String = InputBox("i numeri da sviluppare e analizzare li prendi da file (f) o da tabella (t)", , "t")
    If dafileodatabella = "t" Then
    ScegliNumeri(aN)
    colonnesviluppate = InitSviluppoIntegrale(aN, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
    End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
If bScriptInterrotto Then Exit Do
AvanzamentoElaborazione (cln, colonnesviluppate)
Loop
End If
     '------ fine sviluppo e analisi da tabella...
    Else
    'post relativo al code x leggere file in tweenbasic
    'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496263
'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496547  
 Dim sFileLunghette As String   ' percorso del file delle lunghette
 Dim sRecord As String ' stringa per leggere il file delle lunghette
 Dim sChrSep As String  ' carattere separatore dei numeri nel record della lunghetta
 sFileLunghette = ".\filediprova.txt"
 Dim f As Integer ' puntatore per aprire  il file delle lunghette
 Dim sLunghetta As String ' lunghetta originale che ha generatola riduzione
    sChrSep = "."
    'non permette la verifica di esiti multipli nel tempo...
    'si ferma al primo esito riscontrato...
        If FileExist(sFileLunghette) Then
            'If KillFile(sFileOut) Then
                f = FreeFile ' apro un puntatore libero
                Open sFileLunghette For Input As f ' apre i lfile
                Do Until EOF(f) ' cicla finche non diventa End Of File
                    Line Input #f, sRecord
                    sLunghetta = sRecord
    Scrivi "formazione letta da file txt " & sLunghetta
    Dim anumbase As Variant
    anumbase = Split(sLunghetta, ".")
    colonnesviluppate = InitSviluppoIntegrale(anumbase, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
   End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
Loop
End If
If cln Mod 100 = 0 Then DoEvents
                        If bScriptInterrotto Then Exit Do
                        AvanzamentoElaborazione(cln, colonnesviluppate)
                Loop
                Close f ' chiude il file
End If ' x lettura file txt
End If ' da file o da tabella
Scrivi "Riassuntino finale"
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
Scrivi "colpo massimo generale rilevato " & colpomassimo
Scrivi "casi positivi generali " & casipositivi
Scrivi "casi negativi generali " & casinegativi
Scrivi "casi in corso generali " & casiincorso
Scrivi "n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati
Dim casitotali As Long
   casitotali = casipositivi + casinegativi + casiincorso
   If casipositivi <> 0 Then
      Scrivi "%+ " & (casipositivi / casitotali) * 100
   End If
Scrivi
Scrivi "formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok
Scrivi "colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti
Scrivi
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
Scrivi "colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo
Scrivi
Scrivi "Tt " & TempoElaborazioneSecondi
'------- output riassuntino finale anche in msgextra
    frmScript.msgextra = "Riassuntino finale " & _
    " Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)" & _  
    " Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin) & _
    " Numero ultime estrazioni verificate " & esfin - esini & " Ruote scelte per la verifica " & NomeRuota(aruote) & _
    " Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN) & _
    " Classe di sviluppo " & classedisviluppo & _
    " Sorte minima di verifica " & Sorte & _
    " Colpi di ricerca " & colpidiricerca & _
    " Colonne sviluppate in modo integrale " & colonnesviluppate & _
" colpo massimo generale rilevato " & colpomassimo & _
" casi positivi generali " & casipositivi & _
" casi negativi generali " & casinegativi & _
" casi in corso generali " & casiincorso & _
" n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati & _
" formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok & _
" colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti & _
" colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca & _
" colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo & _
" Tt " & TempoElaborazioneSecondi
'    Select Case (dafileodatabella)
'     Case "t"
'     "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
'     Case "f"
'     "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
'     "File txt sorgente utilizzato " & sFileLunghette
'     End Select
' casitotali = casipositivi + casinegativi + casiincorso & _
' "%+ " & (casipositivi / casitotali) * 100 & _

little screen shot about it

screenshotTEST63.jpg

note test tb 63 sviluppo integrale da file o tabella in classe voluta e verifica sfaldamenti della sorte voluta nei colpi voluti con evidenziazione dei colpi rimanenti eventuali e riassunto finali di casi positivi negativi e in corso.

script test offerto dalla tom's bakery versione tweenbasic 😄 da controllare.. verificare... e ottimizzare... sopratutto per questi aspetti:

1)
l'opzione di sviluppo da file o tabella è creata con troppe righe di codice duplicate. sarà sicuramente possibile ridurla di molte righe...

2) l'output in html o altri limiti di programmazione e/o strutturali non consente al momento sviluppi maggiori alle 4000 formazioni integrali. Ho messo però un controllo che dovrebbe stoppare il programma ed evitare quindi blocchi nel caso si scelga di svilupparle.

3) i colpi rimanenti minimi rispetto i colpi di ricerca e anche quelli rispetto il colpo massimo rilevato non vengono riportati nel riassuntino finale... e lì sono sempre erroneamente = 0

4) lo sviluppo da file richiede la presenza di un file txt contenente le formazioni da analizzare nella stessa cartella dello script tb e nominato necessariamente filediprova.txt in quanto per adesso ignoro totalmente quale sia o come si costruisca la funzione sceglifile analoga a quella presente in spaziometria

5) nella text box aggiunta (xmsgextra) non riesco a mettere nè la modalità scelta se da file o tabella nè la percentuale % e neppure ad incollonnare con ritorno a capo le righe che in tal modo appaiono piuttosto illegibili...

6) la txt box aggiunta (xmsgextra) non si adatta se si allarga l'interfaccia principale del programma come invece fanno correttamente quella lstMessaggi e quella lblMessaggio di base.

Graditissimi commenti e critiche costruttive al riguardo. Sarebbe bello che tutti gli studenti e perchè no anche i teachers facessero altrettanto nel senso di condividere il proprio codice di TEST e relative spiegazioni di utilizzo nonchè richieste di eventuali ottimizzazioni e verifiche x eventuali bugs al suo interno come per altro luigi e ilegend e molto + sporadicamente anche rookie stanno già facendo.

Credo che un'altra cosa da non sottovalutare rispetto all'ambiente, comunque spettacolare, di spaziometria è che gli executable scripts tweenbasic possono eseguire compiti di elaborazione in simultanea... riducendo ancor più il tempo di eventuali lavorazioni che richiedessero + split test con opzioni di sviluppo diverse...

Ad ogni modo come mio primo script tweenbasic di test sono molto soddisfatto. Credevo mi ci volesse molto più tempo per realizzarne uno di questo tipo...

Grazie ancora ai Maestri Luigi e Rookie che hanno reso possibile tutto ciò... ovverosia il mostrarci il primo scalino di un'altra grande e impervia ma affascinantissima montagna munendoci, nel limite del possibile, anche degli scarponi e di tutto il necessario per tentare di scalarla fino in cima...

🐜🗻🧑‍🍳👋:)
 
Codice:
Dim k As Long
    Dim Sorte As Long = CInt(InputBox("sorte di verifica ", , 2))
    ReDim aN(0) As Long  'Array(1, 2, 3, 4, 5, 6, 7)
    'Dim aRuote As Variant = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
    ReDim aruote(0) As Long
    aruote = ScegliRuote
    Dim Ris As STRUCT_VERIFICAESITO_RISULTATO
    Dim aTrovati () As STRUCT_STATISTICHE_TROVATI
    Dim colpidiricerca As Long
    Dim es As Long
    Dim esini As Long
    Dim esfin As Long
    Dim colpomassimo As Long
    colpomassimo = 0
    Dim casipositivi As Long
    Dim casinegativi As Long
    Dim casiincorso As Long
    Dim numerodivoltecheicolpidiricercasonostatisuperati As Long
    numerodivoltecheicolpidiricercasonostatisuperati = 0
    casipositivi = 0
    casinegativi = 0
    casiincorso = 0
    Dim colpirimanentiminimirispettocolpidiricerca As Long
    Dim colpirimanentiminimirispettocolpomassimo As Long
    colpirimanentiminimirispettocolpidiricerca = esfin
    colpirimanentiminimirispettocolpomassimo = esfin
    Dim colpirimanentiinteressanti As Integer
    Dim formazioneconcolpirimanentiminimiok As String
    Dim quanteestrazioniverificare As Long
    quanteestrazioniverificare = CInt(InputBox("quante ultime estrazioni verificare ", , 100))
    Dim classedisviluppo As Long
    classedisviluppo = CInt(InputBox("classe di sviluppo ", , 10))
    Dim colonnesviluppate As Long
    Dim cln As Long
    colpidiricerca = CInt(InputBox("colpi di ricerca ", , 3))
    Dim dafileodatabella As String = InputBox("i numeri da sviluppare e analizzare li prendi da file (f) o da tabella (t)", , "t")
    If dafileodatabella = "t" Then
    ScegliNumeri(aN)
    colonnesviluppate = InitSviluppoIntegrale(aN, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
    End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
If bScriptInterrotto Then Exit Do
AvanzamentoElaborazione (cln, colonnesviluppate)
Loop
End If
     '------ fine sviluppo e analisi da tabella...
    Else
    'post relativo al code x leggere file in tweenbasic
    'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496263
'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496547
 Dim sFileLunghette As String   ' percorso del file delle lunghette
 Dim sRecord As String ' stringa per leggere il file delle lunghette
 Dim sChrSep As String  ' carattere separatore dei numeri nel record della lunghetta
 sFileLunghette = ".\filediprova.txt"
 Dim f As Integer ' puntatore per aprire  il file delle lunghette
 Dim sLunghetta As String ' lunghetta originale che ha generatola riduzione
    sChrSep = "."
    'non permette la verifica di esiti multipli nel tempo...
    'si ferma al primo esito riscontrato...
        If FileExist(sFileLunghette) Then
            'If KillFile(sFileOut) Then
                f = FreeFile ' apro un puntatore libero
                Open sFileLunghette For Input As f ' apre i lfile
                Do Until EOF(f) ' cicla finche non diventa End Of File
                    Line Input #f, sRecord
                    sLunghetta = sRecord
    Scrivi "formazione letta da file txt " & sLunghetta
    Dim anumbase As Variant
    anumbase = Split(sLunghetta, ".")
    colonnesviluppate = InitSviluppoIntegrale(anumbase, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
   End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
Loop
End If
If cln Mod 100 = 0 Then DoEvents
                        If bScriptInterrotto Then Exit Do
                        AvanzamentoElaborazione(cln, colonnesviluppate)
                Loop
                Close f ' chiude il file
End If ' x lettura file txt
End If ' da file o da tabella
Scrivi "Riassuntino finale"
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
Scrivi "colpo massimo generale rilevato " & colpomassimo
Scrivi "casi positivi generali " & casipositivi
Scrivi "casi negativi generali " & casinegativi
Scrivi "casi in corso generali " & casiincorso
Scrivi "n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati
Dim casitotali As Long
   casitotali = casipositivi + casinegativi + casiincorso
   If casipositivi <> 0 Then
      Scrivi "%+ " & (casipositivi / casitotali) * 100
   End If
Scrivi
Scrivi "formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok
Scrivi "colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti
Scrivi
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
Scrivi "colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo
Scrivi
Scrivi "Tt " & TempoElaborazioneSecondi
'------- output riassuntino finale anche in msgextra
    frmScript.msgextra = "Riassuntino finale " & _
    " Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)" & _
    " Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin) & _
    " Numero ultime estrazioni verificate " & esfin - esini & " Ruote scelte per la verifica " & NomeRuota(aruote) & _
    " Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN) & _
    " Classe di sviluppo " & classedisviluppo & _
    " Sorte minima di verifica " & Sorte & _
    " Colpi di ricerca " & colpidiricerca & _
    " Colonne sviluppate in modo integrale " & colonnesviluppate & _
" colpo massimo generale rilevato " & colpomassimo & _
" casi positivi generali " & casipositivi & _
" casi negativi generali " & casinegativi & _
" casi in corso generali " & casiincorso & _
" n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati & _
" formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok & _
" colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti & _
" colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca & _
" colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo & _
" Tt " & TempoElaborazioneSecondi
'    Select Case (dafileodatabella)
'     Case "t"
'     "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
'     Case "f"
'     "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
'     "File txt sorgente utilizzato " & sFileLunghette
'     End Select
' casitotali = casipositivi + casinegativi + casiincorso & _
' "%+ " & (casipositivi / casitotali) * 100 & _

little screen shot about it

Vedi l'allegato 2253461

note test tb 63 sviluppo integrale da file o tabella in classe voluta e verifica sfaldamenti della sorte voluta nei colpi voluti con evidenziazione dei colpi rimanenti eventuali e riassunto finali di casi positivi negativi e in corso.

script test offerto dalla tom's bakery versione tweenbasic 😄 da controllare.. verificare... e ottimizzare... sopratutto per questi aspetti:

1)
l'opzione di sviluppo da file o tabella è creata con troppe righe di codice duplicate. sarà sicuramente possibile ridurla di molte righe...

2) l'output in html o altri limiti di programmazione e/o strutturali non consente al momento sviluppi maggiori alle 4000 formazioni integrali. Ho messo però un controllo che dovrebbe stoppare il programma ed evitare quindi blocchi nel caso si scelga di svilupparle.

3) i colpi rimanenti minimi rispetto i colpi di ricerca e anche quelli rispetto il colpo massimo rilevato non vengono riportati nel riassuntino finale... e lì sono sempre erroneamente = 0

4) lo sviluppo da file richiede la presenza di un file txt contenente le formazioni da analizzare nella stessa cartella dello script tb e nominato necessariamente filediprova.txt in quanto per adesso ignoro totalmente quale sia o come si costruisca la funzione sceglifile analoga a quella presente in spaziometria

5) nella text box aggiunta (xmsgextra) non riesco a mettere nè la modalità scelta se da file o tabella nè la percentuale % e neppure ad incollonnare con ritorno a capo le righe che in tal modo appaiono piuttosto illegibili...

6) la txt box aggiunta (xmsgextra) non si adatta se si allarga l'interfaccia principale del programma come invece fanno correttamente quella lstMessaggi e quella lblMessaggio di base.

Graditissimi commenti e critiche costruttive al riguardo. Sarebbe bello che tutti gli studenti e perchè no anche i teachers facessero altrettanto nel senso di condividere il proprio codice di TEST e relative spiegazioni di utilizzo nonchè richieste di eventuali ottimizzazioni e verifiche x eventuali bugs al suo interno come per altro luigi e ilegend e molto + sporadicamente anche rookie stanno già facendo.

Credo che un'altra cosa da non sottovalutare rispetto all'ambiente, comunque spettacolare, di spaziometria è che gli executable scripts tweenbasic possono eseguire compiti di elaborazione in simultanea... riducendo ancor più il tempo di eventuali lavorazioni che richiedessero + split test con opzioni di sviluppo diverse...

Ad ogni modo come mio primo script tweenbasic di test sono molto soddisfatto. Credevo mi ci volesse molto più tempo per realizzarne uno di questo tipo...

Grazie ancora ai Maestri Luigi e Rookie che hanno reso possibile tutto ciò... ovverosia il mostrarci il primo scalino di un'altra grande e impervia ma affascinantissima montagna munendoci, nel limite del possibile, anche degli scarponi e di tutto il necessario per tentare di scalarla fino in cima...

🐜🗻🧑‍🍳👋:)
Non ti fermare sugli allori del momento, perche' il bello deve ancora accadere! Hai fatto un ottimo passo verso questa Bellezza, peccato che non sia stata creata da un Italiano (mi riferisco a tB). Wayne dice che entro il 2025 ci sara' certamente il prodotto finale, IDE, Compilatore ottimizzato, Multithreading anche per lo sviluppo (al momento e' solo nel debug), e sopratutto funzionalita' che estendono il linguaggio, e anche altre cose, come sviluppare applicazioni robuste per il Web. Quindi fino ad allora, approfondisci e padroneggia meglio che puoi questo interessante e potente ambiente di sviluppo. Se non succede qualcosa di catastrofico e imprevisto ne sentiremo parlare... Per ora dobbiamo vedere la veloce successione delle beta version fino al rilascio della versione 1.0
 
l'esempio della grid non mi funzionava però è servito a capire come funziona.

in pratica nell'evento

1676454810406.png

che avviene dopo che lanciamo il metodo repaint della griglia

1676454867467.png

dicevo in quell'evento va impostata la proprietà value che si riferisce con x e y alle coordinate delal griglia.
questo prevede di avere una matrice di valori in memoria da passare alla griglia oppure come nell'esempio che non fungeva fagli leggere le proprietà di un oggetto (il fileProperties in quel caso)

quindi c'è qui l'esempio fatto da me.

Comunque questa WayneGrid si puo usare solo sui Wayneform , i quali si possoo visualizzare solo in modalita modale.
la cosa è alquanto fastidiosa , la griglia inoltre è molto povera rispettot alal flexgrid anche se di layout puo venire piu carina.

l'esempio twinbasic è allegato , va rimossa l'estensione .txt e scmpattato




1676455082812.png
 

Allegati

l'esempio della grid non mi funzionava però è servito a capire come funziona.

in pratica nell'evento

Vedi l'allegato 2253465

che avviene dopo che lanciamo il metodo repaint della griglia

Vedi l'allegato 2253466

dicevo in quell'evento va impostata la proprietà value che si riferisce con x e y alle coordinate delal griglia.
questo prevede di avere una matrice di valori in memoria da passare alla griglia oppure come nell'esempio che non fungeva fagli leggere le proprietà di un oggetto (il fileProperties in quel caso)

quindi c'è qui l'esempio fatto da me.

Comunque questa WayneGrid si puo usare solo sui Wayneform , i quali si possoo visualizzare solo in modalita modale.
la cosa è alquanto fastidiosa , la griglia inoltre è molto povera rispettot alal flexgrid anche se di layout puo venire piu carina.

l'esempio twinbasic è allegato , va rimossa l'estensione .txt e scmpattato




Vedi l'allegato 2253467
Complimenti Luigi, sei proprio un fulmine di guerra! E' vero che la caratteristica che hai descritto e' fastidiosa (almeno per il momento), pero' funzionera' sia a 32-bit che a 64-bit (per chi vuole contribuire alla causa elargendo money). E' importante avere questa opzione offerta con tB. Grazie per avere scritto un esempio pratico al servizio di questo thread. Che diventa sempre piu' interessante! Grazie a te e agli studenti Premium!
 
Codice:
Dim k As Long
    Dim Sorte As Long = CInt(InputBox("sorte di verifica ", , 2))
    ReDim aN(0) As Long  'Array(1, 2, 3, 4, 5, 6, 7)
    'Dim aRuote As Variant = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
    ReDim aruote(0) As Long
    aruote = ScegliRuote
    Dim Ris As STRUCT_VERIFICAESITO_RISULTATO
    Dim aTrovati () As STRUCT_STATISTICHE_TROVATI
    Dim colpidiricerca As Long
    Dim es As Long
    Dim esini As Long
    Dim esfin As Long
    Dim colpomassimo As Long
    colpomassimo = 0
    Dim casipositivi As Long
    Dim casinegativi As Long
    Dim casiincorso As Long
    Dim numerodivoltecheicolpidiricercasonostatisuperati As Long
    numerodivoltecheicolpidiricercasonostatisuperati = 0
    casipositivi = 0
    casinegativi = 0
    casiincorso = 0
    Dim colpirimanentiminimirispettocolpidiricerca As Long
    Dim colpirimanentiminimirispettocolpomassimo As Long
    colpirimanentiminimirispettocolpidiricerca = esfin
    colpirimanentiminimirispettocolpomassimo = esfin
    Dim colpirimanentiinteressanti As Integer
    Dim formazioneconcolpirimanentiminimiok As String
    Dim quanteestrazioniverificare As Long
    quanteestrazioniverificare = CInt(InputBox("quante ultime estrazioni verificare ", , 100))
    Dim classedisviluppo As Long
    classedisviluppo = CInt(InputBox("classe di sviluppo ", , 10))
    Dim colonnesviluppate As Long
    Dim cln As Long
    colpidiricerca = CInt(InputBox("colpi di ricerca ", , 3))
    Dim dafileodatabella As String = InputBox("i numeri da sviluppare e analizzare li prendi da file (f) o da tabella (t)", , "t")
    If dafileodatabella = "t" Then
    ScegliNumeri(aN)
    colonnesviluppate = InitSviluppoIntegrale(aN, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
    End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
If bScriptInterrotto Then Exit Do
AvanzamentoElaborazione (cln, colonnesviluppate)
Loop
End If
     '------ fine sviluppo e analisi da tabella...
    Else
    'post relativo al code x leggere file in tweenbasic
    'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496263
'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496547 
 Dim sFileLunghette As String   ' percorso del file delle lunghette
 Dim sRecord As String ' stringa per leggere il file delle lunghette
 Dim sChrSep As String  ' carattere separatore dei numeri nel record della lunghetta
 sFileLunghette = ".\filediprova.txt"
 Dim f As Integer ' puntatore per aprire  il file delle lunghette
 Dim sLunghetta As String ' lunghetta originale che ha generatola riduzione
    sChrSep = "."
    'non permette la verifica di esiti multipli nel tempo...
    'si ferma al primo esito riscontrato...
        If FileExist(sFileLunghette) Then
            'If KillFile(sFileOut) Then
                f = FreeFile ' apro un puntatore libero
                Open sFileLunghette For Input As f ' apre i lfile
                Do Until EOF(f) ' cicla finche non diventa End Of File
                    Line Input #f, sRecord
                    sLunghetta = sRecord
    Scrivi "formazione letta da file txt " & sLunghetta
    Dim anumbase As Variant
    anumbase = Split(sLunghetta, ".")
    colonnesviluppate = InitSviluppoIntegrale(anumbase, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
   End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
Loop
End If
If cln Mod 100 = 0 Then DoEvents
                        If bScriptInterrotto Then Exit Do
                        AvanzamentoElaborazione(cln, colonnesviluppate)
                Loop
                Close f ' chiude il file
End If ' x lettura file txt
End If ' da file o da tabella
Scrivi "Riassuntino finale"
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
Scrivi "colpo massimo generale rilevato " & colpomassimo
Scrivi "casi positivi generali " & casipositivi
Scrivi "casi negativi generali " & casinegativi
Scrivi "casi in corso generali " & casiincorso
Scrivi "n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati
Dim casitotali As Long
   casitotali = casipositivi + casinegativi + casiincorso
   If casipositivi <> 0 Then
      Scrivi "%+ " & (casipositivi / casitotali) * 100
   End If
Scrivi
Scrivi "formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok
Scrivi "colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti
Scrivi
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
Scrivi "colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo
Scrivi
Scrivi "Tt " & TempoElaborazioneSecondi
'------- output riassuntino finale anche in msgextra
    frmScript.msgextra = "Riassuntino finale " & _
    " Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)" & _ 
    " Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin) & _
    " Numero ultime estrazioni verificate " & esfin - esini & " Ruote scelte per la verifica " & NomeRuota(aruote) & _
    " Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN) & _
    " Classe di sviluppo " & classedisviluppo & _
    " Sorte minima di verifica " & Sorte & _
    " Colpi di ricerca " & colpidiricerca & _
    " Colonne sviluppate in modo integrale " & colonnesviluppate & _
" colpo massimo generale rilevato " & colpomassimo & _
" casi positivi generali " & casipositivi & _
" casi negativi generali " & casinegativi & _
" casi in corso generali " & casiincorso & _
" n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati & _
" formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok & _
" colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti & _
" colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca & _
" colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo & _
" Tt " & TempoElaborazioneSecondi
'    Select Case (dafileodatabella)
'     Case "t"
'     "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
'     Case "f"
'     "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
'     "File txt sorgente utilizzato " & sFileLunghette
'     End Select
' casitotali = casipositivi + casinegativi + casiincorso & _
' "%+ " & (casipositivi / casitotali) * 100 & _

little screen shot about it

Vedi l'allegato 2253461

note test tb 63 sviluppo integrale da file o tabella in classe voluta e verifica sfaldamenti della sorte voluta nei colpi voluti con evidenziazione dei colpi rimanenti eventuali e riassunto finali di casi positivi negativi e in corso.

script test offerto dalla tom's bakery versione tweenbasic 😄 da controllare.. verificare... e ottimizzare... sopratutto per questi aspetti:

1)
l'opzione di sviluppo da file o tabella è creata con troppe righe di codice duplicate. sarà sicuramente possibile ridurla di molte righe...

2) l'output in html o altri limiti di programmazione e/o strutturali non consente al momento sviluppi maggiori alle 4000 formazioni integrali. Ho messo però un controllo che dovrebbe stoppare il programma ed evitare quindi blocchi nel caso si scelga di svilupparle.

3) i colpi rimanenti minimi rispetto i colpi di ricerca e anche quelli rispetto il colpo massimo rilevato non vengono riportati nel riassuntino finale... e lì sono sempre erroneamente = 0

4) lo sviluppo da file richiede la presenza di un file txt contenente le formazioni da analizzare nella stessa cartella dello script tb e nominato necessariamente filediprova.txt in quanto per adesso ignoro totalmente quale sia o come si costruisca la funzione sceglifile analoga a quella presente in spaziometria

5) nella text box aggiunta (xmsgextra) non riesco a mettere nè la modalità scelta se da file o tabella nè la percentuale % e neppure ad incollonnare con ritorno a capo le righe che in tal modo appaiono piuttosto illegibili...

6) la txt box aggiunta (xmsgextra) non si adatta se si allarga l'interfaccia principale del programma come invece fanno correttamente quella lstMessaggi e quella lblMessaggio di base.

Graditissimi commenti e critiche costruttive al riguardo. Sarebbe bello che tutti gli studenti e perchè no anche i teachers facessero altrettanto nel senso di condividere il proprio codice di TEST e relative spiegazioni di utilizzo nonchè richieste di eventuali ottimizzazioni e verifiche x eventuali bugs al suo interno come per altro luigi e ilegend e molto + sporadicamente anche rookie stanno già facendo.

Credo che un'altra cosa da non sottovalutare rispetto all'ambiente, comunque spettacolare, di spaziometria è che gli executable scripts tweenbasic possono eseguire compiti di elaborazione in simultanea... riducendo ancor più il tempo di eventuali lavorazioni che richiedessero + split test con opzioni di sviluppo diverse...

Ad ogni modo come mio primo script tweenbasic di test sono molto soddisfatto. Credevo mi ci volesse molto più tempo per realizzarne uno di questo tipo...

Grazie ancora ai Maestri Luigi e Rookie che hanno reso possibile tutto ciò... ovverosia il mostrarci il primo scalino di un'altra grande e impervia ma affascinantissima montagna munendoci, nel limite del possibile, anche degli scarponi e di tutto il necessario per tentare di scalarla fino in cima...

🐜🗻🧑‍🍳👋:)
io personalmente ti diffido al creare qualsiasi tipo di script :-) ahahah :LOL:
 
l'esempio della grid non mi funzionava però è servito a capire come funziona.

in pratica nell'evento

Vedi l'allegato 2253465

che avviene dopo che lanciamo il metodo repaint della griglia

Vedi l'allegato 2253466

dicevo in quell'evento va impostata la proprietà value che si riferisce con x e y alle coordinate delal griglia.
questo prevede di avere una matrice di valori in memoria da passare alla griglia oppure come nell'esempio che non fungeva fagli leggere le proprietà di un oggetto (il fileProperties in quel caso)

quindi c'è qui l'esempio fatto da me.

Comunque questa WayneGrid si puo usare solo sui Wayneform , i quali si possoo visualizzare solo in modalita modale.
la cosa è alquanto fastidiosa , la griglia inoltre è molto povera rispettot alal flexgrid anche se di layout puo venire piu carina.

l'esempio twinbasic è allegato , va rimossa l'estensione .txt e scmpattato




Vedi l'allegato 2253467
Devo dire che l'aspetto e' veramente carino... professionale :)(y)
Grazie, per i miei usi e scopi e' perfetto. Adesso re-impacco il test a cui stavo lavorando (leggendo il file risutante e popolando il grid, sono stato previdente) ed avra' davvero un bell'impatto. E tutti, la dove lo presentero' vorranno sapere con cosa l'ho fatto... diro' per non rispondere che si tratta di un progetto "in itinere" creato da una Italica StartUp, la SDLR-Tech di Roma :)

1676456302634.png
 
Ultima modifica:
Codice:
Dim k As Long
    Dim Sorte As Long = CInt(InputBox("sorte di verifica ", , 2))
    ReDim aN(0) As Long  'Array(1, 2, 3, 4, 5, 6, 7)
    'Dim aRuote As Variant = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
    ReDim aruote(0) As Long
    aruote = ScegliRuote
    Dim Ris As STRUCT_VERIFICAESITO_RISULTATO
    Dim aTrovati () As STRUCT_STATISTICHE_TROVATI
    Dim colpidiricerca As Long
    Dim es As Long
    Dim esini As Long
    Dim esfin As Long
    Dim colpomassimo As Long
    colpomassimo = 0
    Dim casipositivi As Long
    Dim casinegativi As Long
    Dim casiincorso As Long
    Dim numerodivoltecheicolpidiricercasonostatisuperati As Long
    numerodivoltecheicolpidiricercasonostatisuperati = 0
    casipositivi = 0
    casinegativi = 0
    casiincorso = 0
    Dim colpirimanentiminimirispettocolpidiricerca As Long
    Dim colpirimanentiminimirispettocolpomassimo As Long
    colpirimanentiminimirispettocolpidiricerca = esfin
    colpirimanentiminimirispettocolpomassimo = esfin
    Dim colpirimanentiinteressanti As Integer
    Dim formazioneconcolpirimanentiminimiok As String
    Dim quanteestrazioniverificare As Long
    quanteestrazioniverificare = CInt(InputBox("quante ultime estrazioni verificare ", , 100))
    Dim classedisviluppo As Long
    classedisviluppo = CInt(InputBox("classe di sviluppo ", , 10))
    Dim colonnesviluppate As Long
    Dim cln As Long
    colpidiricerca = CInt(InputBox("colpi di ricerca ", , 3))
    Dim dafileodatabella As String = InputBox("i numeri da sviluppare e analizzare li prendi da file (f) o da tabella (t)", , "t")
    If dafileodatabella = "t" Then
    ScegliNumeri(aN)
    colonnesviluppate = InitSviluppoIntegrale(aN, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
    End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
If bScriptInterrotto Then Exit Do
AvanzamentoElaborazione (cln, colonnesviluppate)
Loop
End If
     '------ fine sviluppo e analisi da tabella...
    Else
    'post relativo al code x leggere file in tweenbasic
    'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496263
'https://forum.lottoced.com/threads/nuovo-ambiente-script-area-tecnica.2207989/post-2496547 
 Dim sFileLunghette As String   ' percorso del file delle lunghette
 Dim sRecord As String ' stringa per leggere il file delle lunghette
 Dim sChrSep As String  ' carattere separatore dei numeri nel record della lunghetta
 sFileLunghette = ".\filediprova.txt"
 Dim f As Integer ' puntatore per aprire  il file delle lunghette
 Dim sLunghetta As String ' lunghetta originale che ha generatola riduzione
    sChrSep = "."
    'non permette la verifica di esiti multipli nel tempo...
    'si ferma al primo esito riscontrato...
        If FileExist(sFileLunghette) Then
            'If KillFile(sFileOut) Then
                f = FreeFile ' apro un puntatore libero
                Open sFileLunghette For Input As f ' apre i lfile
                Do Until EOF(f) ' cicla finche non diventa End Of File
                    Line Input #f, sRecord
                    sLunghetta = sRecord
    Scrivi "formazione letta da file txt " & sLunghetta
    Dim anumbase As Variant
    anumbase = Split(sLunghetta, ".")
    colonnesviluppate = InitSviluppoIntegrale(anumbase, classedisviluppo)
       If colonnesviluppate > 4005 Then
    MsgBox ("attenzione le formazioni integrali generate da questa tua scelta di sviluppo superano le 4.000 e non possono essere gestite per questo tipo di analisi. Scegliere un gruppo base + contenuto o una classe di sviluppo non inferiore ai 2 punti rispetto quella del gruppo base scelto ")
    'Stop
    'Exit
   End
    End If
    esfin = EstrazioneFin
    esini = EstrazioneFin - quanteestrazioniverificare
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
   ReDim aretcol(classedisviluppo) As Long
    'ReDim aretcol(90) As Long
If colonnesviluppate > 0 Then
Do While GetCombSviluppo(aretcol) = True
cln = cln + 1
 frmScript.lblMessaggio = " Enjoy with this little Script by tom :) - colonna elaborata n. " & cln & " su " & colonnesviluppate * UBound(aruote)
    For es = esini To esfin
    If VerificaEsito(aretcol, Sorte, es, Ris, aruote, , , aTrovati) Then
        Scrivi
        Scrivi "Esito al colpo " & Ris.ColpiUsati
        Scrivi "Sorte uscita " & Ris.EsitoTrovato
        Scrivi "Presenze " & Ris.Presenze
        Scrivi "PresenzeMult " & Ris.PresenzeMultiple
        Scrivi "Colpo massimo rilevato " & colpomassimo
        Scrivi
        casipositivi = casipositivi + 1
        For k = 1 To UBound(aTrovati)
            Scrivi (StringaNumeri(aTrovati(k).aNumeri) & " all'estrazione " & aTrovati(k).idEstrazione & " ruota  " & NomeRuota(aTrovati(k).idRuota))
        If Ris.ColpiUsati > colpomassimo Then
        colpomassimo = Ris.ColpiUsati
        End If
        If Ris.ColpiUsati > colpidiricerca Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpidiricerca & " colpi in + rispetto i " & colpidiricerca & " colpi di ricerca impostatati"
        Scrivi
        numerodivoltecheicolpidiricercasonostatisuperati = numerodivoltecheicolpidiricercasonostatisuperati + 1
        'casinegativi = casinegativi + 1
        End If
       If Ris.ColpiUsati > colpomassimo Then
        Scrivi
        Scrivi " esito ottenuto con " & Ris.ColpiUsati - colpomassimo & " colpi in + rispetto il valore " & colpomassimo & " di colpo massimo rilevato"
        Scrivi
        End If
        Next
    Else
        Scrivi
        Scrivi "Es. " & es & GetInfoEstrazione(es)
        Scrivi "Esito non trovato"
        Scrivi
        'Scrivi "colpi rimanenti " & colpidiricerca - Ris.ColpiUsati
        If colpidiricerca - Ris.ColpiUsati < 0 Then
            Scrivi
            Scrivi "Esito negativo ", True, , , 1
            Scrivi
            casinegativi = casinegativi + 1
            Else
            Scrivi
            Scrivi "Esito in corso...", True, , , 2
            Scrivi "colpi rimanenti rispetto colpi di ricerca " & colpidiricerca - Ris.ColpiUsati
            Scrivi "formazione interessata " & StringaNumeri(aretcol)
            If colpidiricerca - Ris.ColpiUsati < colpirimanentiminimirispettocolpidiricerca Then
            colpirimanentiminimirispettocolpidiricerca = colpidiricerca - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
             If colpirimanentiminimirispettocolpidiricerca = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto i colpi di ricerca sono a 0!"
            End If
            End If
            Scrivi "colpi rimanenti rispetto colpo massimo " & colpomassimo - Ris.ColpiUsati
             If colpomassimo - Ris.ColpiUsati < colpirimanentiminimirispettocolpomassimo Then
            colpirimanentiminimirispettocolpomassimo = colpomassimo - Ris.ColpiUsati
            Scrivi "colpi rimanenti minimi rispetto colpomassimo " & colpirimanentiminimirispettocolpomassimo
            If colpirimanentiminimirispettocolpomassimo = 0 Then
            Scrivi "adesso i colpi rimanenti minimi rispetto colpo massimo sono a 0!"
            End If
            End If
            If colpirimanentiminimirispettocolpomassimo <= 3 Then
            colpirimanentiinteressanti = colpirimanentiminimirispettocolpomassimo
            formazioneconcolpirimanentiminimiok = StringaNumeri(aretcol)
            End If
            Scrivi
            casiincorso = casiincorso + 1
            End If
        End If
        Scrivi
Next
Loop
End If
If cln Mod 100 = 0 Then DoEvents
                        If bScriptInterrotto Then Exit Do
                        AvanzamentoElaborazione(cln, colonnesviluppate)
                Loop
                Close f ' chiude il file
End If ' x lettura file txt
End If ' da file o da tabella
Scrivi "Riassuntino finale"
    Scrivi
    Scrivi "Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)"
    Select Case (dafileodatabella)
    Case "t"
    Scrivi "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
    Case "f"
    Scrivi "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
    Scrivi "File txt sorgente utilizzato " & sFileLunghette
    End Select
    Scrivi "Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin)
    Scrivi "Numero ultime estrazioni verificate " & esfin - esini
    Scrivi "Ruote scelte per la verifica " & NomeRuota(aruote)
    Scrivi "Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN)
    Scrivi "Classe di sviluppo " & classedisviluppo
    Scrivi "Sorte minima di verifica " & Sorte
    Scrivi "Colpi di ricerca " & colpidiricerca
    Scrivi "Colonne sviluppate in modo integrale " & colonnesviluppate
    Scrivi
Scrivi "colpo massimo generale rilevato " & colpomassimo
Scrivi "casi positivi generali " & casipositivi
Scrivi "casi negativi generali " & casinegativi
Scrivi "casi in corso generali " & casiincorso
Scrivi "n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati
Dim casitotali As Long
   casitotali = casipositivi + casinegativi + casiincorso
   If casipositivi <> 0 Then
      Scrivi "%+ " & (casipositivi / casitotali) * 100
   End If
Scrivi
Scrivi "formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok
Scrivi "colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti
Scrivi
Scrivi "colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca
Scrivi "colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo
Scrivi
Scrivi "Tt " & TempoElaborazioneSecondi
'------- output riassuntino finale anche in msgextra
    frmScript.msgextra = "Riassuntino finale " & _
    " Script di TEST offerto dalla tom's bakery versione TWEENBASIC :-)" & _ 
    " Periodo analizzato " & GetInfoEstrazione(esini) & " - " & GetInfoEstrazione(esfin) & _
    " Numero ultime estrazioni verificate " & esfin - esini & " Ruote scelte per la verifica " & NomeRuota(aruote) & _
    " Gruppo base analizzato " & StringaNumeri(aN) & " classe " & UBound (aN) & _
    " Classe di sviluppo " & classedisviluppo & _
    " Sorte minima di verifica " & Sorte & _
    " Colpi di ricerca " & colpidiricerca & _
    " Colonne sviluppate in modo integrale " & colonnesviluppate & _
" colpo massimo generale rilevato " & colpomassimo & _
" casi positivi generali " & casipositivi & _
" casi negativi generali " & casinegativi & _
" casi in corso generali " & casiincorso & _
" n. casi in cui i colpi di ricerca sono stati superati " & numerodivoltecheicolpidiricercasonostatisuperati & _
" formazione con colpi rimanenti minimi interessanti (rispetto al colpo massimo) e <= 3 : " & formazioneconcolpirimanentiminimiok & _
" colpi minimi interessanti relativi (rispetto al colpo massimo) " & colpirimanentiinteressanti & _
" colpi rimanenti minimi rispetto colpi di ricerca " & colpirimanentiminimirispettocolpidiricerca & _
" colpi rimanenti minimi rispetto colpo massimo " & colpirimanentiminimirispettocolpomassimo & _
" Tt " & TempoElaborazioneSecondi
'    Select Case (dafileodatabella)
'     Case "t"
'     "Modalità scelta per il recupero del gruppo base: tramite TABELLA"
'     Case "f"
'     "Modalita' scelta per il recupero del gruppo base: tramite FILE TXT"
'     "File txt sorgente utilizzato " & sFileLunghette
'     End Select
' casitotali = casipositivi + casinegativi + casiincorso & _
' "%+ " & (casipositivi / casitotali) * 100 & _

little screen shot about it

Vedi l'allegato 2253461

note test tb 63 sviluppo integrale da file o tabella in classe voluta e verifica sfaldamenti della sorte voluta nei colpi voluti con evidenziazione dei colpi rimanenti eventuali e riassunto finali di casi positivi negativi e in corso.

script test offerto dalla tom's bakery versione tweenbasic 😄 da controllare.. verificare... e ottimizzare... sopratutto per questi aspetti:

1)
l'opzione di sviluppo da file o tabella è creata con troppe righe di codice duplicate. sarà sicuramente possibile ridurla di molte righe...

2) l'output in html o altri limiti di programmazione e/o strutturali non consente al momento sviluppi maggiori alle 4000 formazioni integrali. Ho messo però un controllo che dovrebbe stoppare il programma ed evitare quindi blocchi nel caso si scelga di svilupparle.

3) i colpi rimanenti minimi rispetto i colpi di ricerca e anche quelli rispetto il colpo massimo rilevato non vengono riportati nel riassuntino finale... e lì sono sempre erroneamente = 0

4) lo sviluppo da file richiede la presenza di un file txt contenente le formazioni da analizzare nella stessa cartella dello script tb e nominato necessariamente filediprova.txt in quanto per adesso ignoro totalmente quale sia o come si costruisca la funzione sceglifile analoga a quella presente in spaziometria

5) nella text box aggiunta (xmsgextra) non riesco a mettere nè la modalità scelta se da file o tabella nè la percentuale % e neppure ad incollonnare con ritorno a capo le righe che in tal modo appaiono piuttosto illegibili...

6) la txt box aggiunta (xmsgextra) non si adatta se si allarga l'interfaccia principale del programma come invece fanno correttamente quella lstMessaggi e quella lblMessaggio di base.

Graditissimi commenti e critiche costruttive al riguardo. Sarebbe bello che tutti gli studenti e perchè no anche i teachers facessero altrettanto nel senso di condividere il proprio codice di TEST e relative spiegazioni di utilizzo nonchè richieste di eventuali ottimizzazioni e verifiche x eventuali bugs al suo interno come per altro luigi e ilegend e molto + sporadicamente anche rookie stanno già facendo.

Credo che un'altra cosa da non sottovalutare rispetto all'ambiente, comunque spettacolare, di spaziometria è che gli executable scripts tweenbasic possono eseguire compiti di elaborazione in simultanea... riducendo ancor più il tempo di eventuali lavorazioni che richiedessero + split test con opzioni di sviluppo diverse...

Ad ogni modo come mio primo script tweenbasic di test sono molto soddisfatto. Credevo mi ci volesse molto più tempo per realizzarne uno di questo tipo...

Grazie ancora ai Maestri Luigi e Rookie che hanno reso possibile tutto ciò... ovverosia il mostrarci il primo scalino di un'altra grande e impervia ma affascinantissima montagna munendoci, nel limite del possibile, anche degli scarponi e di tutto il necessario per tentare di scalarla fino in cima...

🐜🗻🧑‍🍳👋:)


1676457870002.png

la textbox deve avere la proprietà multiline = true
ogni riga per andare a capo deve terminare con vbCrLf

la textbox non si ridimensona perche non hai inserito il codice epr farglielo fare , ti avevo già detto che esiste un evento resize del form nel quale gia c'è la procedura che ridimensiona i controlli devi andare li a vedere come puoi fare

lo script di sicuro si puo fare in modo piu elegante , solo che per farlo bisognerebeb sapere che fa ..
 
Tom ma lo script cosa ?
Da quello che ho capito prende dei numeri da scegli numeri e li combina in ambi.
Se invece prendesse un file di testo con 100 righe lo script che fa?
Il limite do 4000 righe cosa è?
 
lo script di sicuro si puo fare in modo piu elegante , solo che per farlo bisognerebeb sapere che fa ..
Tom ma lo script cosa ?
Da quello che ho capito prende dei numeri da scegli numeri e li combina in ambi.
Se invece prendesse un file di testo con 100 righe lo script che fa?
Il limite do 4000 righe cosa è?

friends cosa fa... l'avevo scritto sopra 🫠

note test tb 63 sviluppo integrale da file o tabella in classe voluta e verifica sfaldamenti della sorte voluta nei colpi voluti con evidenziazione dei colpi rimanenti eventuali e riassunto finali di casi positivi negativi e in corso.

se prende i numeri da tabella sviluppa nella classe voluta il gruppo base importato
se prende i numeri da file txt sviluppa ogni relativa riga caricata nella classe voluta
dopodichè analizza se vi sono o meno sfaldamenti per la sorte voluta nel range di colpi e sulle ruote volute
e se non vi sono mostra quanti colpi rimanenti teorici rimangono rispetto i colpi di ricerca impostati e rispetto il colpo massimo teorico rilevato in run time. alla fine mostra i casi positivi i casi negativi e i casi in corso e la percentuale positiva relativa. il limite di 4000 formazioni è dovuto al fatto che se si superano purtroppo lo sviluppo l'analisi, la verifica e il relativo output in html si impallano.. 😔😃

👋 :)
 
Ultima modifica:
allora vediamo di farlo insieme ..
punto 1 cancella tutta la robaccia che hai scritto nell tuo script

inserisci un nuovo form come questo e chiama i controlli come li ho chiamati io

1676475852292.png

poi scrivi una routine che si deve chiamare AbilitaFrame

questa routine dovra testare il valore value dei 2 option button e in funzione di quello che ha value true impostare le proprietà enabled dei frame 1 e 2 ma anche degli oggetti in esso contenuti.

questa routine dovra essere lanciata in 3 punt , load del form , click su ognuon dei 2 option button.


procedi e avvertimi quado hai fatto...

per legend se lo fai pure tu non fare niente di piu di quanto ho detto io non partirmi come al solito per la tangente
 

Allegati

  • 1676471241527.png
    1676471241527.png
    31,7 KB · Visite: 17
Ultima modifica di un moderatore:
errore21.png


errore21Frm.png


ahhhhhhhhhhhhhhhhhh,ahhhhhhhhhhhhhhhhhhhhhhhhh

stavo gia provando a fare qualcosa di molto piu semplice e mi sono trovato incasinato.
ok mi piacerebbe provarci:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 23 novembre 2024
    Bari
    33
    80
    86
    52
    25
    Cagliari
    67
    57
    59
    05
    80
    Firenze
    31
    32
    58
    88
    77
    Genova
    40
    39
    23
    36
    81
    Milano
    28
    58
    45
    25
    38
    Napoli
    20
    82
    23
    44
    57
    Palermo
    76
    56
    88
    62
    31
    Roma
    12
    81
    59
    74
    72
    Torino
    46
    53
    72
    45
    23
    Venezia
    04
    12
    42
    64
    20
    Nazionale
    63
    44
    78
    10
    55
    Estrazione Simbolotto
    Torino
    43
    42
    12
    39
    22

Ultimi Messaggi

Indietro
Alto