Novità

NUOVO AMBIENTE SCRIPT AREA TECNICA

  • Creatore Discussione Creatore Discussione LuigiB
  • Data di inizio Data di inizio
ciao a Tutti :)
due notizie
Una Buona :)
Avrei potuto fare tutto nella prima funzione , ma per flessibilita per cercare qualsialsi giorno ho fatto in due funzioni
ho utilizzato Dataestrazione come parametro avrei potutiìo usare IdEstrazione e fare la trasformazione nella funzione Vediamo cosa è preferibile
In Classe archivio
Codice:
' Trovo il giorno della settimana Sabato
Function GiornoDellaSettimana(dataEstrazione As Date) As Integer
 On Error GoTo errore
  Return Weekday(dataEstrazione, 0)
    errore:
    If Err <> 0 Then
        mErrore = Err.Description
        Err.Clear
    End If
End Function
' Verifico se il giorno della settimana è sabato
Function isSabato(DataEstrazione As Date) As Boolean
 On Error GoTo errore
  Return Weekday(DataEstrazione, 0) = 6
    errore:
    If Err <> 0 Then
        mErrore = Err.Description
        Err.Clear
    End If
End Function
in classe script
Codice:
' trovo il giorno della settimana
Function GiornoDellaSettimana(dataEstrazione As Date, Optional idArchivio As Integer = 0) As Integer
 On Error GoTo errore
  Return cArchivio(idArchivio).GiornoDellaSettimana(dataEstrazione)'WeekdayName(Weekday(dataEstrazione, 1))
    errore:
    If Err <> 0 Then
MsgBox Err.Description, vbCritical


End If

End Function
' Verifico se il giorno della settimana è sabato
Function isSabato(DataEstrazione As Date, Optional idArchivio As Integer = 0) As Boolean
 On Error GoTo errore
  Return cArchivio(idArchivio).isSabato(DataEstrazione)
    errore:
    If Err <> 0 Then
MsgBox Err.Description, vbCritical


End If
End Function
l ' altra no
messaggio di errore , non so cosa ho combinato

ho messo una listbox per scrivere i
i concorsi del solo sabato
for i =c.estrazioniArchivio to c.EstrazioniArchivio-30 step-1
s=c. DataEstrazione(i)&"|"& i
if IsSabato(c.DataEstrazione(i)) then list1.addtime s
next

ecco cosa ho combinato
errore4.png

ciao :(
 
bravo toma mi uguro che dietro ci sia una funzone che devi lanciare e che ti ritorna true/false ...

Ammazza che fiducia nei tuoi students e in particolare nel pasticcere 🧑‍🍳🤖 master! :eek::ROFLMAO:

Ad ogni modo in questo caso mi sono servito della funzione già presente in tb che ritorna direttamente il numero del giorno della settimana passandogli nell'azione del bottone del form il parametro dinamico della data... Con un if poi ho mostrato se si trattasse di un SABATO o meno... Credo che il true e il false sia integrato nella funzione di cui sopra (Weekday) che per altro ci hai tu stesso detto di cercare con il Santo Google :D Spero di non essere andato troppo fuori tema... e se vuoi visto che ilegend lo ha già fatto senza "via libera" anche io posto il codice... zompettato dalla 🙉

Un salutone a te Maestro Shifu e a tutti e buon martedì estrazionale 👋😀
 
attenzione a non confondersi e a non fare cose complicate partendo per la tangente .. le funzioni ove possibile devono seguire la stessa logica

1674551693796.png

1674551902903.png
 
ciao a Tutti :)
due notizie
Una Buona :)
Avrei potuto fare tutto nella prima funzione , ma per flessibilita per cercare qualsialsi giorno ho fatto in due funzioni
ho utilizzato Dataestrazione come parametro avrei potutiìo usare IdEstrazione e fare la trasformazione nella funzione Vediamo cosa è preferibile
In Classe archivio
Codice:
' Trovo il giorno della settimana Sabato
Function GiornoDellaSettimana(dataEstrazione As Date) As Integer
 On Error GoTo errore
  Return Weekday(dataEstrazione, 0)
    errore:
    If Err <> 0 Then
        mErrore = Err.Description
        Err.Clear
    End If
End Function
' Verifico se il giorno della settimana è sabato
Function isSabato(DataEstrazione As Date) As Boolean
 On Error GoTo errore
  Return Weekday(DataEstrazione, 0) = 6
    errore:
    If Err <> 0 Then
        mErrore = Err.Description
        Err.Clear
    End If
End Function
in classe script
Codice:
' trovo il giorno della settimana
Function GiornoDellaSettimana(dataEstrazione As Date, Optional idArchivio As Integer = 0) As Integer
 On Error GoTo errore
  Return cArchivio(idArchivio).GiornoDellaSettimana(dataEstrazione)'WeekdayName(Weekday(dataEstrazione, 1))
    errore:
    If Err <> 0 Then
MsgBox Err.Description, vbCritical


End If

End Function
' Verifico se il giorno della settimana è sabato
Function isSabato(DataEstrazione As Date, Optional idArchivio As Integer = 0) As Boolean
 On Error GoTo errore
  Return cArchivio(idArchivio).isSabato(DataEstrazione)
    errore:
    If Err <> 0 Then
MsgBox Err.Description, vbCritical


End If
End Function
l ' altra no
messaggio di errore , non so cosa ho combinato

ho messo una listbox per scrivere i
i concorsi del solo sabato
for i =c.estrazioniArchivio to c.EstrazioniArchivio-30 step-1
s=c. DataEstrazione(i)&"|"& i
if IsSabato(c.DataEstrazione(i)) then list1.addtime s
next

ecco cosa ho combinato
Vedi l'allegato 2251852

ciao :(
Ciao iLegendario, forse questo potrebbe...aiutarti!

Codice:
Private Sub Command7_Click()             
    Dim i%
    Dim feld1() As Double
        List2.Clear
        ReDim feld1(UBound(feld))
        i = UBound(feld1)
        For i = 0 To maximum
            feld1(i) = feld(i)
        Next i
        Beep
        sortiere feld1(0), CLng(UBound(feld1))   ' questa e' una chiamata a una funzione che ordina i dati, IGNORALA
        Beep
        For i = 0 To maximum
            List2.AddItem CStr(feld1(i))                   ' QUESTA INVECE POPOLA IL LISTVIEW List2
        Next i
    End Sub
 
    Private Sub Form_Load()
        ReDim feld(0)
    End Sub
 
X luigi
Ok come avevo presupposto avrei dovuto utilizzare idestrazione aeatrazione(idestrazione). data.data
È più veloce.
Grazie 😉👍
 
Ultima modifica:
Ciao iLegendario, forse questo potrebbe...aiutarti!

Codice:
Private Sub Command7_Click()            
    Dim i%
    Dim feld1() As Double
        List2.Clear
        ReDim feld1(UBound(feld))
        i = UBound(feld1)
        For i = 0 To maximum
            feld1(i) = feld(i)
        Next i
        Beep
        sortiere feld1(0), CLng(UBound(feld1))   ' questa e' una chiamata a una funzione che ordina i dati, IGNORALA
        Beep
        For i = 0 To maximum
            List2.AddItem CStr(feld1(i))                   ' QUESTA INVECE POPOLA IL LISTVIEW List2
        Next i
    End Sub
 
    Private Sub Form_Load()
        ReDim feld(0)
    End Sub
Grazie mille ti faccio sapere dopo pranzo😉👍
 
Credo che il true e il false sia integrato nella funzione di cui sopra (Weekday) c
Weekday () restituisce un numero
Per il vero falso
Nella funzione issabato
Poni weekday=6
Se è vero restituisce true altrimenti da falso
Almeno io ho fatto così, poi sentiamo il prof o rookie per certezze
Ciao.
Posta pure il codice , tom , tanto nessuno neanche commenta , quindi non credo che arrechi problemi, e luigi e rookie potrebbero andare avanti più spediti.
Se non capisco come hai fatto ti chiedo e anche tu ovviamente se dovessi fare prima io. Adesso mi stai stracciando 🤣🤣🤣🤣
🤣
 
Nel frattempo di provare il codice di Rookie ho cercato in rete, ma non capisco cosa ha generato l errore.
Credo un controllo
Per eliminare la texbox ho utilizzato cut
Poi ho fatto doppio click sulla listbox
E poi ha dato errore.
Forse il controllo era troppo grande per il form?
Ho sbagliato a toccare la form1 ?
Giusto per capire.
Grazie :)
 
Nel frattempo di provare il codice di Rookie ho cercato in rete, ma non capisco cosa ha generato l errore.
Credo un controllo
Per eliminare la texbox ho utilizzato cut
Poi ho fatto doppio click sulla listbox
E poi ha dato errore.
Forse il controllo era troppo grande per il form?
Ho sbagliato a toccare la form1 ?
Giusto per capire.
Grazie :)
Da questa descrizione e' arduo (per me) risalire alla causa dell'errore...
pero'... "credo un controllo" questo e' assai probabile

questo doppio passaggio non mi e' chiaro:
"Per eliminare la texbox ho utilizzato cut" ed e' corretto se era cio' che volevi fare
"Poi ho fatto doppio click sulla listbox" e' possibile che hai eliminato il listbox invece del textbox?
"Ho sbagliato a toccare la form1" le form... se non le tocchi non faranno mai quello che desideri...
 
Weekday () restituisce un numero
Per il vero falso
Nella funzione issabato
Poni weekday=6
Se è vero restituisce true altrimenti da falso
Almeno io ho fatto così, poi sentiamo il prof o rookie per certezze
Ciao.
Posta pure il codice , tom , tanto nessuno neanche commenta , quindi non credo che arrechi problemi, e luigi e rookie potrebbero andare avanti più spediti.
Se non capisco come hai fatto ti chiedo e anche tu ovviamente se dovessi fare prima io. Adesso mi stai stracciando 🤣🤣🤣🤣
🤣

Ciao legend :) compagno di classe :D

Io ho provato a fare così...

in form1

Codice:
If c.Init(sFile, 5, 11, 90) Then
Dim S As String
S = ""
For a = c.EstrazioniArchivio To c.EstrazioniArchivio - 1 Step -1
  
  
Print "es. n. " & a
Print "giorno della settimana " & Weekday(c.dataestrazione(a)) '& c.week(a)
If Weekday(c.dataestrazione(a)) = 7 Then
Print "E' SABATOOOOOOOOOOOOOOOOOOOOOOOOOOO!"
Else
Print "No I'm sorry non è sabato..."
End If
If Weekday(c.dataestrazione(a)) = 3 Then
Print "E' MARTEDI!"
End If
If Weekday(c.dataestrazione(a)) = 5 Then
Print "E' GIOVEDI'!"
End If
For r = 1 To 1
For p = 1 To 5
S = S & c.Estratto(a, r, p) & "-"
Next

Print S
Next
S = ""
Next
    End If


in clsArchivio ho messo questa... (direttamente copiata e incollata da un sito relativo ma credo sia ininfluente.. e che tb la funzione weekday ce l'abbia già in corpo...) :unsure:



Codice:
  Function Week(dteValue As Date) As Integer
   'Monday is set as first day of week
   Dim lngDate As Long
   Dim intWeek As Integer
   'If january 1. is later then thursday, january 1. is not in week 1
   If Not Weekday("01/01/" & Year(dteValue), vbMonday) > 4 Then
      intWeek = 1
   Else
      intWeek = 0
   End If
   'Sets long-value for january 1.
   lngDate = CLng(CDate("01/01/" & Year(dteValue)))
   'Finds the first monday of year
   lngDate = lngDate + (8 - Weekday("01/01/" & Year(dteValue), vbMonday))
   'Increases week by week until set date is passed
   While Not lngDate > CLng(CDate(dteValue))
      intWeek = intWeek + 1
      lngDate = lngDate + 7
   Wend
   'If the date set is not in week 1, this finds latest week previous year
   If intWeek = 0 Then
      intWeek = Week("31/12/" & Year(dteValue) - 1)
   End If
   Week = intWeek
End Function

infine in clsscript...

Codice:
     Function week(idEstrazione As Long, Optional idArchivio As Integer = 0) As Boolean 

      
        Return cArchivio(idArchivio).Week(cArchivio(idArchivio).dataestrazione(idEstrazione))
      
 End Function

👋🙂
 
Ciao legend :) compagno di classe :D

Io ho provato a fare così...

in form1

Codice:
If c.Init(sFile, 5, 11, 90) Then
Dim S As String
S = ""
For a = c.EstrazioniArchivio To c.EstrazioniArchivio - 1 Step -1
 
 
Print "es. n. " & a
Print "giorno della settimana " & Weekday(c.dataestrazione(a)) '& c.week(a)
If Weekday(c.dataestrazione(a)) = 7 Then
Print "E' SABATOOOOOOOOOOOOOOOOOOOOOOOOOOO!"
Else
Print "No I'm sorry non è sabato..."
End If
If Weekday(c.dataestrazione(a)) = 3 Then
Print "E' MARTEDI!"
End If
If Weekday(c.dataestrazione(a)) = 5 Then
Print "E' GIOVEDI'!"
End If
For r = 1 To 1
For p = 1 To 5
S = S & c.Estratto(a, r, p) & "-"
Next

Print S
Next
S = ""
Next
    End If


in clsArchivio ho messo questa... (direttamente copiata e incollata da un sito relativo ma credo sia ininfluente.. e che tb la funzione weekday ce l'abbia già in corpo...) :unsure:



Codice:
  Function Week(dteValue As Date) As Integer
   'Monday is set as first day of week
   Dim lngDate As Long
   Dim intWeek As Integer
   'If january 1. is later then thursday, january 1. is not in week 1
   If Not Weekday("01/01/" & Year(dteValue), vbMonday) > 4 Then
      intWeek = 1
   Else
      intWeek = 0
   End If
   'Sets long-value for january 1.
   lngDate = CLng(CDate("01/01/" & Year(dteValue)))
   'Finds the first monday of year
   lngDate = lngDate + (8 - Weekday("01/01/" & Year(dteValue), vbMonday))
   'Increases week by week until set date is passed
   While Not lngDate > CLng(CDate(dteValue))
      intWeek = intWeek + 1
      lngDate = lngDate + 7
   Wend
   'If the date set is not in week 1, this finds latest week previous year
   If intWeek = 0 Then
      intWeek = Week("31/12/" & Year(dteValue) - 1)
   End If
   Week = intWeek
End Function

infine in clsscript...

Codice:
     Function week(idEstrazione As Long, Optional idArchivio As Integer = 0) As Boolean

     
        Return cArchivio(idArchivio).Week(cArchivio(idArchivio).dataestrazione(idEstrazione))
     
 End Function

👋🙂
Macchiavelli docet! Il fine giustifica i mezzi... (per arrivare al risultato agognato, mia integrazione)
 
Codice:
  Function Week(dteValue As Date) As Integer
   'Monday is set as first day of week
   Dim lngDate As Long
   Dim intWeek As Integer
   'If january 1. is later then thursday, january 1. is not in week 1
   If Not Weekday("01/01/" & Year(dteValue), vbMonday) > 4 Then
      intWeek = 1
   Else
      intWeek = 0
   End If
   'Sets long-value for january 1.
   lngDate = CLng(CDate("01/01/" & Year(dteValue)))
   'Finds the first monday of year
   lngDate = lngDate + (8 - Weekday("01/01/" & Year(dteValue), vbMonday))
   'Increases week by week until set date is passed
   While Not lngDate > CLng(CDate(dteValue))
      intWeek = intWeek + 1
      lngDate = lngDate + 7
   Wend
   'If the date set is not in week 1, this finds latest week previous year
   If intWeek = 0 Then
      intWeek = Week("31/12/" & Year(dteValue) - 1)
   End If
   Week = intWeek
End Function





👋🙂
Tom se ho letto ed interpretato bene credo tu abbia già scritto la funzione che calcola la settimana utilissima
grandissimo:)👍
 
Da qualche giorno sto provando e riprovando a capire le (tante) idiosincrasie di tB, e come mio solito sono tornato indietro, alle fondamenta. Partire dalla semplicita' dell'essenziale, eppero' ancora non basta a intuire il comportamento non ancora lineare (leggi, prevedibile o intuibile) dell'IDE di tB...

Quello che mi preme conoscere e' quanto e' veloce a fare una elaborazione tB (formato exe) (alla @lotto_tom75 ) precisamente quella dei 52446 gruppi da 21 numeri, usando l'archivio venus, non mi ricordo precisamente ma sono meno di 2070 estrazioni...

Dopo la risposta al quesito corrente, nell'attesa di immergervi/ci per ottenere il tabellone provate a creare un progetto come indicato sotto nelle refenze al necessario, bastano solo gli 8 textBoxes, trascurando i bottoni da premere e il prototipo del menu'

Questo e' il minimo, contratto al massimo ma ancora facilmente comprensibile, per ottenere quello che si vede (ma anche cio' che non si vede immediamente...)

Non si vede che viene letto un archivio, compattissimo in csv, letto in modalita' binaria, caricato in un vettore di byte usati per ritornare ai valori degli estratti. Poi tutti gli attributi della estrazione (non e' l'archivio sulle quali state lavorando) precedono i cinque estratti di bari, che vedete anche nel commento per capire come si punta alle informazioni che vanno a popolare i textboxes...

Tutto l'archivio e' contenuto dentro il vettore bytes() e nell"esempio di codice capirete come avere le informazioni che contiene...

Ho scelto di usare questo tipo di accesso al file, perche' puo' leggere un file delle dimensioni massime che WIndows a 32-bit riserva come memoria ad un programma, ovvero "solo" 2GB, che a me serve quando faccio simulazioni per altri scopi.


Piu' avanti vedremo altre cose...

Codice:
Class Form1

    Sub New()
    End Sub
 
    Private Sub Form_Load()
       Dim fileNum As Integer
       Dim bytes() As Byte
 
 
 

  fileNum = FreeFile
  Open "C:\test\archivio\solovenus.csv" For Binary As fileNum
  ReDim bytes(LOF(fileNum) - 1)
  Get fileNum,, bytes
  Close fileNum
 
        ' 0    5   9          20 23 26 29 32 ...
        ' 8117;111;15/09/2009;22;60;41;12;11;80;57;24;61;06;23;72;19;02;13;72;03;65;79;26;14;20;07;64;71;61;11;66;80;26;81;28;02;34;56;78;40;45;86;33;09;84;15;08;76;64;72;75;50;37;30;50;83;25;13
 
         Text1.Text = Chr$(bytes(0)) & Chr$(bytes(1)) & Chr$(bytes(2)) & Chr$(bytes(3))
    
         Text2.Text = Chr$(bytes(5)) & Chr$(Chr$(bytes(6))) & Chr$(bytes(7))
 
        Text3.Text = Chr$(bytes(9)) & Chr$(bytes(10)) & Chr$(bytes(11)) & Chr$(bytes(12)) & Chr$(bytes(13)) & Chr$(bytes(14)) & Chr$(bytes(15)) & Chr$(bytes(16)) & Chr$(bytes(17)) & Chr$(bytes(18))
         Text4.Text = Chr$(bytes(20)) & Chr$(bytes(21))
         Text5.Text = Chr$(bytes(23)) & Chr$(bytes(24))
         Text6.Text = Chr$(bytes(26)) & Chr$(bytes(27))
         Text7.Text = Chr$(bytes(29)) & Chr$(bytes(30))
         Text8.Text = Chr$(bytes(32)) & Chr$(bytes(33))
 
 
    End Sub

End Class


E-Non-Finisce-Qui.png
 
Ultima modifica:
Quello che mi preme conoscere e' quanto e' veloce a fare una elaborazione tB (formato exe) (alla @lotto_tom75 ) precisamente quella dei 52446 gruppi da 21 numeri, usando l'archivio venus, non mi ricordo precisamente ma sono meno di 2070...

cio Rooke le funzioni di statistica io le ho gia implementate mi dici quale sarebeb sto script di lottotom cosi facciodelle modifiche mirate a farlo funzionare per fare una comparazione ?
 
cio Rooke le funzioni di statistica io le ho gia implementate mi dici quale sarebeb sto script di lottotom cosi facciodelle modifiche mirate a farlo funzionare per fare una comparazione ?
Ciao Luigi, non ho idea come si chiami lo script, avendo scritto un programma che piu' o meno riproduce il risultato relativo solo ai gruppi da 21 numeri. Conosco solo il contenuto del file (la matrice del sistema) che contiene 52.446 gruppi di 21 numeri. E' Tom (e forse anche i Legendario) che detiene la corretta informazione!
 
Ultima modifica:
Ciao luigi
In pratica abbiamo un sistema si 90 numeri in classe 21( record a garanzia ambo (credo))
Viene fatta la statistica per ritardo, presenze ( ossia concorsi coperti), e, per presenzamultipla in caso di sorti superiori.
Poi si applicano i filtri eit ritmax casi coperti presenze maz ecc
Ovviamente tom docet aspettiamo lui.
Io per ottenere i dati ho utilizzato elencoritarditurbo.
 
Ciao luigi
In pratica abbiamo un sistema si 90 numeri in classe 21( record a garanzia ambo (credo))
Viene fatta la statistica per ritardo, presenze ( ossia concorsi coperti), e, per presenzamultipla in caso di sorti superiori.
Poi si applicano i filtri eit ritmax casi coperti presenze maz ecc
Ovviamente tom docet aspettiamo lui.
Io per ottenere i dati ho utilizzato elencoritarditurbo.

cioè avete queste 52mila colonne ognuna di 21 numeri ? e su queste volete fare la statistica ? questa è la logica ?
 

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