Novità

SpazioLight.net

Ciao. Ho lanciato qualche riga di codice (non il pc:)).
Volutamente ho dichiarato un array con pochi elementi ma ne ho fatti scorrere due in più. Nonostante avessi messo un blocco si è aperta una form che non riesco a chiudere se non uscendo dal programma.
Se rilancio lo script con il medesimo errore si apre un altra finestra così ne restano aperte 2.

Ho notato , ma devo fare il confronto con i tempi che è più veloce di spaziometria:).
Bravissimi.
Un po di prove per assimilare e prendere confidenza con il nuovo linguaggio sono necessarie :)
Grazie di tutto :)
 
Domandona
Dim a as byte
Dim a,b,c as byte
Considere tutte le variabili as byte o sola la c e le altre varianti?
Prendere confidenza con gli array e la loro dichiarazione è d obbligo.
Abbiamo da studiare :)
 
Domandona
Dim a as byte
Dim a,b,c as byte
Considere tutte le variabili as byte o sola la c e le altre varianti?
Prendere confidenza con gli array e la loro dichiarazione è d obbligo.
Abbiamo da studiare :)
Dim a,b,c as byte sono tutte considerate byte.
Ricorda i Legend che in VB.net non si può più dichiarare direttamente attraverso l'istruzione ReDim
Esempio:
Codice:
Dim lamiavariabile () As Integer

ReDim lamiavariabile(90)



Oppure



Dim lamiavariabile (90) as integer



Questo è giusto

----------------------------------------

ReDim lamiavariabile (90)

 

Questo genera errore
 
Carissimo Prof , Luigi, Edoardo, dobbiamo cominciare a chiedere.
Ho uno script in vbscript che cerca un ambo sincrono di ritardo su 2 ruote e in vbscript impiega circa 43 sec con anche ordine ritardo decrescente di ordinamatrice.
Volevo riportare il costrutto script in vbnet ma alcune cose non mi riescono causa errori di vario genere.
## lo script calcola il ritardo alla -1 estrazioneFine cosi, per capire se alla estrazione Fine.ultima si verifica qualche sortita ##
## allego script di mio costrutto ##

P.s il Verificasito vuole la ruota as object e non il vettore Ruote() ????

## aiuto ##

Codice:
Class Script
Sub Main
    # If infoScript Then
    Cerca ambo uguale con stesso Ritardo su 2 Ruote
    ....................................
    ....By Mike58 SpazioLight 1.0.8 ....
    # End If
    Dim nu(2) As Integer
    Dim Mat(4005,4) As Integer
    Dim Ini As Integer  = 1'EstrazioneIni
    Dim fin As Integer  = EstrazioniArchivio - 1
    Dim fine As Integer = EstrazioniArchivio
    Dim n1,n2,a,b,k , x  As Integer
    Dim r1,r2 , ru(2) As Integer
    Dim colpoR1 , colpoR2  As Integer
    Dim  SortitaR1 , SortitaR2    As String
    'ResetTimer
    For r1 = 1 To 10
        For r2 = r1 + 1 To 11
            'If r2 = 11 Then r2 = 12
            For n1 = 1 To 89
                For n2 = n1 + 1 To 90
                    a = AmboRitardo (n1,n2,r1,fin)
                    b = AmboRitardo (n1,n2,r2,fin)
                    If a = b And a > 400 Then
                        k =+1
                        ru(1) = r1 : ru(2) = r2
                        nu(1) = n1 : nu(2) = n2
                        Call VerificaEsito (nu,r1,2,fine,Nothing,colpoR1,SortitaR1 )
                        Call VerificaEsito (nu,r2,2,fine,Nothing,colpoR2,SortitaR2 )
                        'Call VerificaEsito (nu,ru,2,fine,Nothing,colpoR3,SortitaR3 )
                        Mat(k,1) = StringaNumeri(nu)
                        Mat(k,2) = ru(1) & ru(2)
                        Mat(k,3) = a
                        Mat(k,4) = "-" 'Sortita
                    End If
                Next
            Next
        Next
    Next
    'Call OrdinaMatrice (Mat,- 1,3)
    For x = 1 To k
        Scrivi (x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4))
    Next
    'Scrivi
    'Scrivi "Tempo di Elaborazione : " & TempoTrascorso
    'inserire qui il proprio codice...
End Sub
End Class
 
Nel caso lo script in vbscript per SpazioMetria

Codice:
Sub Main
'Ambo Sincrono 2 ruote - 27-3-2021
Dim ru(2),nu(2),Mat(4005,7)
  Ini = EstrazioneIni
  fin = EstrazioneFin - 1
  fine = EstrazioneFin
  ResetTimer
  For r1 = 1 To 10
  For r2 = r1 + 1 To 12
  If r2 = 11 Then r2 = 12
  For n1 = 1 To 89
  For n2 = n1 + 1 To 90
  a = AmboRitardoTurbo(r1,n1,n2,Ini,fin)
  b = AmboRitardoTurbo(r2,n1,n2,Ini,fin)
  If a = b And a > 400 Then
  k = k + 1
  ru(1) = r1 : ru(2) = r2
  nu(1) = n1 : nu(2) = n2
  Call StatisticaFormazioneTurbo(nu,ru,2,rit,max,Incr,fre,Ini,fin)
  Call VerificaEsitoTurbo(nu,ru,fine,2,1,,esito,,esa)
  If esito = "" Then rit = rit + 1
 
  'Scrivi n1 & "." & n2 & vbTab & StringaRuote(ru) & vbTab & a
  'Mat(k,1) = k
  Mat(k,1) = StringaNumeri(nu)
  Mat(k,2) = StringaRuote(ru)
  Mat(k,3) = rit
  Mat(k,4) = esa
  Mat(k,5) = max
  Mat(k,6) = Incr
  Mat(k,7) = fre
  End If
  Next
  Next
  Next
  Next
  Call OrdinaMatriceTurbo(Mat,- 1,3)
  For x = 1 To k
  Scrivi x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4) & vbTab & Mat(x,5) & vbTab & Mat(x,6) & vbTab & Mat(x,7)
  Next
  Scrivi
  Scrivi "Tempo di Elaborazione : " & TempoTrascorso
 
 
End Sub
 
quando è object pupo passare o un valore solo con una semplice variabile , oppure puoi passare l'array
 
Nel caso lo script in vbscript per SpazioMetria

Codice:
Sub Main
'Ambo Sincrono 2 ruote - 27-3-2021
Dim ru(2),nu(2),Mat(4005,7)
  Ini = EstrazioneIni
  fin = EstrazioneFin - 1
  fine = EstrazioneFin
  ResetTimer
  For r1 = 1 To 10
  For r2 = r1 + 1 To 12
  If r2 = 11 Then r2 = 12
  For n1 = 1 To 89
  For n2 = n1 + 1 To 90
  a = AmboRitardoTurbo(r1,n1,n2,Ini,fin)
  b = AmboRitardoTurbo(r2,n1,n2,Ini,fin)
  If a = b And a > 400 Then
  k = k + 1
  ru(1) = r1 : ru(2) = r2
  nu(1) = n1 : nu(2) = n2
  Call StatisticaFormazioneTurbo(nu,ru,2,rit,max,Incr,fre,Ini,fin)
  Call VerificaEsitoTurbo(nu,ru,fine,2,1,,esito,,esa)
  If esito = "" Then rit = rit + 1
 
  'Scrivi n1 & "." & n2 & vbTab & StringaRuote(ru) & vbTab & a
  'Mat(k,1) = k
  Mat(k,1) = StringaNumeri(nu)
  Mat(k,2) = StringaRuote(ru)
  Mat(k,3) = rit
  Mat(k,4) = esa
  Mat(k,5) = max
  Mat(k,6) = Incr
  Mat(k,7) = fre
  End If
  Next
  Next
  Next
  Next
  Call OrdinaMatriceTurbo(Mat,- 1,3)
  For x = 1 To k
  Scrivi x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4) & vbTab & Mat(x,5) & vbTab & Mat(x,6) & vbTab & Mat(x,7)
  Next
  Scrivi
  Scrivi "Tempo di Elaborazione : " & TempoTrascorso
 
 
End Sub
Sono da telefono quindi perdona eventuali anomalie. Non so il fine ultimo del tuo script quindi non posso assicurare i risultati ma dovrebbe essere così:

Codice:
Class Script
Sub Main
    Dim a,b,k As Integer
    Dim ru(2) As Integer
    Dim nu(2) As Integer
    Dim Mat(4005,5) As Integer
    Dim ini As Integer = 1
    Dim fin As Integer = EstrazioniArchivio - 1
    Dim fine As Integer = EstrazioniArchivio
    Dim nSorte As Integer = 2
    Dim Ritardo,RitardoMax,IncrRitMax,Frequenza As Integer
    Dim esito() As String
    For r1 As Integer = 1 To 10
        For r2 As Integer = r1 + 1 To 11
            For n1 As Integer = 1 To 89
                For n2 As Integer = n1 + 1 To 89
                    a = AmboRitardo(n1,n2,r1,fin)
                    b = AmboRitardo(n1,n2,r2,fin)
                    If a = b And a > 400 Then
                        k +=1
                        ru(1) = r1 : ru(2) = r2
                        nu(1) = n1 : nu(2) = n2
                        Call SerieStat(nu,ru,nSorte,Ritardo,RitardoMax,Frequenza,,IncrRitMax,ini,fine)
                        Call VerificaEsito(nu,ru,nSorte,fine,,,esito)
                        For x As Integer = 1 To esito.getupperbound(0)
                            If esito(x) = "" Then Ritardo += 1
                        Next
                        Mat(k,1) = StringaNumeri(nu)
                        Mat(k,2) = Ritardo
                        Mat(k,3) = RitardoMax
                        Mat(k,4) = IncrRitMax
                        Mat(k,5) = Frequenza
                    End If
                Next
            Next
        Next
    Next
   For x As Integer  = 1 To k
      Scrivi (x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4) & vbTab & Mat(x,5))
   Next
End Sub
End Class
 
Un saluto a tutti, grandissimi Edo e Luigi è normale che Norton mi segnali il programma e due sue .lib come potenzialmente molto nocivi e che me li rimuova sempre...? :unsure: Mi tocca sempre ripristinarli dalla quarantena dove me li manda in automatico... ogni volta che installo una nuova versione👋:)

Qui sotto uno dei tre errori che mi mostra di solito...

unodeitreerrorichemimostradisolito.jpg
 
Ultima modifica:
il tuo script mike diventa cosi , attenzione che se dichiari la matrice integer poi dentro non ci puoi scrivere stringhe , per consentire la possibilita di scrivere sia stringhe che numeri devi usare object.

questo il tuo script che funziona con la mia versioen appena Edoardo pubblica provalo

Codice:
Class Script
Sub Main
    Dim a,b,k As Integer
    Dim ru(2) As Integer
    Dim nu(2) As Integer
    Dim Mat(4005,5) As Object
    Dim ini As Integer = 1
    Dim fin As Integer = EstrazioniArchivio - 1
    Dim fine As Integer = EstrazioniArchivio
    Dim nSorte As Integer = 2
    Dim Ritardo ,RitardoMax,IncrRitMax,Frequenza As Integer
    Dim esito() As String
    For r1 As Integer = 1 To 10
        For r2 As Integer = r1 + 1 To 11
            For n1 As Integer = 1 To 89
                For n2 As Integer = n1 + 1 To 89
                    a = AmboRitardo(n1,n2,r1,fin)
                    b = AmboRitardo(n1,n2,r2,fin)
                    If a = b And a > 400 Then
                        k +=1
                        ru(1) = r1 : ru(2) = r2
                        nu(1) = n1 : nu(2) = n2
                        Call SerieStat(nu,ru,nSorte,Ritardo,RitardoMax,Frequenza,,IncrRitMax,ini,fine)
                        If VerificaEsito(nu,ru,nSorte,fine,,,esito) = False  Then
                      
                           
                        
                            Ritardo += 1
                        End If

                            Mat(k,1) = StringaNumeri(nu)
                            Mat(k,2) = Ritardo
                            Mat(k,3) = RitardoMax
                            Mat(k,4) = IncrRitMax
                            Mat(k,5) = Frequenza

                    End If
                Next
            Next
        Next
        Call AvanzamentoElab(1 ,10 ,r1)

    Next

   For x As Integer  = 1 To k
      Scrivi (x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4) & vbTab & Mat(x,5))
   Next
End Sub
End Class

non so se faccia quell oche vuoi pero almeno tira fuori un output , i ltuo dava errore .. nel caso correggi la logica..
 
Aggiornamento 1.0.9

Cambiamenti:

- risolte alcune anomalie sezione script
- risolti alcuni bug generici alle finestre del software
-inserito tasto inverti selezione barre inferiore ruote.
-risolto bug ruote separate quando si selezionavano tutte le ruote più (TT)

 
Inoltre, visto le difficoltà nel tipizzare le variabili, abbiamo fatto una mini guida iniziale. Se usciranno ulteriori perplessità procederò nel creare ulteriori mini guide, le quali, prima di essere pubblicate, verranno visionate da LuigiB.

 
il tuo script mike diventa cosi , attenzione che se dichiari la matrice integer poi dentro non ci puoi scrivere stringhe , per consentire la possibilita di scrivere sia stringhe che numeri devi usare object.

questo il tuo script che funziona con la mia versioen appena Edoardo pubblica provalo

Codice:
Class Script
Sub Main
    Dim a,b,k As Integer
    Dim ru(2) As Integer
    Dim nu(2) As Integer
    Dim Mat(4005,5) As Object
    Dim ini As Integer = 1
    Dim fin As Integer = EstrazioniArchivio - 1
    Dim fine As Integer = EstrazioniArchivio
    Dim nSorte As Integer = 2
    Dim Ritardo ,RitardoMax,IncrRitMax,Frequenza As Integer
    Dim esito() As String
    For r1 As Integer = 1 To 10
        For r2 As Integer = r1 + 1 To 11
            For n1 As Integer = 1 To 89
                For n2 As Integer = n1 + 1 To 89
                    a = AmboRitardo(n1,n2,r1,fin)
                    b = AmboRitardo(n1,n2,r2,fin)
                    If a = b And a > 400 Then
                        k +=1
                        ru(1) = r1 : ru(2) = r2
                        nu(1) = n1 : nu(2) = n2
                        Call SerieStat(nu,ru,nSorte,Ritardo,RitardoMax,Frequenza,,IncrRitMax,ini,fine)
                        If VerificaEsito(nu,ru,nSorte,fine,,,esito) = False  Then
                     
                          
                       
                            Ritardo += 1
                        End If

                            Mat(k,1) = StringaNumeri(nu)
                            Mat(k,2) = Ritardo
                            Mat(k,3) = RitardoMax
                            Mat(k,4) = IncrRitMax
                            Mat(k,5) = Frequenza

                    End If
                Next
            Next
        Next
        Call AvanzamentoElab(1 ,10 ,r1)

    Next

   For x As Integer  = 1 To k
      Scrivi (x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4) & vbTab & Mat(x,5))
   Next
End Sub
End Class

non so se faccia quell oche vuoi pero almeno tira fuori un output , i ltuo dava errore .. nel caso correggi la logica..
Lo script funziona (manca ordinamatrice del ritardo decrescente, ma i dati non sono combacianti con lo script vbscript post #285.
allego immagine
 
scusa Luigi i dati sono corretti manca solo l'ordina matrice (mi sono confuso 28.68 con 22.68)

Solo questo codice cosa dice
For x As Integer = 1 To esito.getupperbound(0)
lo vedi spesso usato anche per le tabelle ?
 
getuppperbound è la stessa cosa di ubound , torna l'indice piu alto dell'array , volendo puoi usare anche ubound
esito è un array che riporta il primo esito trovato su una o piu ruote ma comunque nella stessa estrazione, ma se verificaesito non torna true
quell'array saraà vuoto
 
ringrazio,Mike e LUigi che hanno aperto le danze
sono riuscito a mettere anche le ruote;):ROFLMAO:
Class Script
Sub Main
Dim a,b,k As Integer
Dim ru(2) As Integer
Dim nu(2) As Integer
Dim Mat(4005,7) As Object
Dim ini As Integer = 1
Dim fin As Integer = EstrazioniArchivio - 1
Dim fine As Integer = EstrazioniArchivio
Dim nSorte As Integer = 2
Dim Ritardo ,RitardoMax,IncrRitMax,Frequenza As Integer
Dim esito() As String
For r1 As Integer = 1 To 10
For r2 As Integer = r1 + 1 To 11
If r2 =11 Then r2=12

For n1 As Integer = 1 To 89
For n2 As Integer = n1 + 1 To 89
a = AmboRitardo(n1,n2,r1,fin)
b = AmboRitardo(n1,n2,r2,fin)
If a = b And a > 400 Then
k +=1
ru(1) = r1 : ru(2) = r2
nu(1) = n1 : nu(2) = n2
Call SerieStat(nu,ru,nSorte,Ritardo,RitardoMax,Frequenza,,IncrRitMax,ini,fine)
If VerificaEsito(nu,ru,nSorte,fine,,,esito) = False Then


Ritardo += 1
End If

Mat(k,1) = StringaNumeri(nu)
Mat(k,2) = Ritardo
Mat(k,3) = RitardoMax
Mat(k,4) = IncrRitMax
Mat(k,5) = Frequenza
Mat(k,6) = NomeRuota(r1)
Mat(k,7) = NomeRuota(r2)


End If
Next
Next
Next
Call AvanzamentoElab(1 ,10 ,r1)

Next

For x As Integer = 1 To k
Scrivi (x & vbTab & Mat(x,1) & vbTab & Mat(x,2) & vbTab & Mat(x,3) & vbTab & Mat(x,4) & vbTab & Mat(x,5)& vbTab & Mat(x,6)& " ,"& Mat(x,7))
Next
End Sub
End Class
 
Un saluto a tutti, grandissimi Edo e Luigi è normale che Norton mi segnali il programma e due sue .lib come potenzialmente molto nocivi e che me li rimuova sempre...? :unsure: Mi tocca sempre ripristinarli dalla quarantena dove me li manda in automatico... ogni volta che installo una nuova versione👋:)

Qui sotto uno dei tre errori che mi mostra di solito...

Vedi l'allegato 2227066
Può essere un falso positivo,io uso Avira pro e non mi segnala nulla,quando hai dubbi su dei file dalli in "pasto" a virustotal sito che integra i maggiori antivirus.
Poi ovviamamente aspetta risposte ben più autorevoli della mia.
 
2333.jpg


Edoardo ecco la tabella lo fatta in modo veloce se puoi modificare
la tabella delle estr simile a questa tabella..
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 18 gennaio 2025
    Bari
    24
    76
    02
    72
    12
    Cagliari
    21
    08
    77
    04
    17
    Firenze
    74
    84
    07
    12
    72
    Genova
    13
    07
    33
    47
    18
    Milano
    01
    34
    09
    55
    48
    Napoli
    46
    23
    25
    03
    06
    Palermo
    44
    07
    01
    46
    84
    Roma
    88
    78
    64
    74
    04
    Torino
    07
    87
    67
    38
    53
    Venezia
    31
    25
    04
    18
    02
    Nazionale
    49
    82
    59
    65
    67
    Estrazione Simbolotto
    Bari
    03
    13
    31
    23
    35

Ultimi Messaggi

Indietro
Alto