Novità

Per dirla alla "Austin Powers" sarebbe...

Luigi se ho fatto troppo o deviato dalla giusta via , cercherò di seguirti meglio.
Intanto grazie per questa possibilità.
Se sono riuscito ad imparare i cicli do e i Redim grazie a voi spero di fare anche questo salto.
Anche se grande.

Domandona che esula da tutto ciò.
Conosci assembly?
Ho letto di gare e di programmi iperveloci.
Che è un linguaggio più veloce di c++.
Non tu sto chiedendo di scrivere spaziometria in assembly , anche perché cambia in base ai processori , na solo se lo conosci.
Ciao:)
 
Ciao Legend l'assembly è il linguaggio in cui vengono compilati gli eseguibili , l'assembly è il linguaggio macchina , nessuno scrive programmi direttamente in assembly a meno che non si stia scrivendo qualche driver di dispositivo.
Un programma scritto in c , delphi , vb quando viene compilato
per trasformarlo in exe il compilatore crea codice assembly , chiusa parentesi non divaghiamo e veniamo al nostro punto..

Quello che hai fatto non va ancora bene.

al suo interno clsLunghetta usa solo variabili ,
non deve cercare di interpretare quale sia il carattere separatore dei numeri della stringa ,
quello glie lo dice il chiamante ed è compito del chiamante dirglielo giusto.

avevi fatto bene all'inizio.

Il metodo Init è il metodo che noi usiamo per passare alla classe i valori specifici con i quali deve operare.

gli passiamo la stringa dei numeri
gli passiamo il carattere separatore
gli passeremo anche altre cose che vedremo.

tutti i valori che passiamo a clsLunghetta glie li passiamo da fuori , mentre scriviamo il codice di stiamo ragionando in astratto quindi useremo solo variabili senza ancora sapere il valore che conterranno ma solo il genere , ad esempio sNum conterra una stringa di numeri non è importante sapere quali , sChrSep conterrà il carattere separatore da usare , non ci importa di sapere se sarà una virgola o un punto o un altro ..


per facilitare il compito e per parlarci alla stessa lunghzza d'onda io avevo detto di fare una cosa come questa.
Trascrvi il codice in formato testuale e postalo ben formattato , poi continuiamo


caricare immagini
.
 
Ciao luigi :)
Codice:
Option Explicit 

Class ClsLunghetta 
      Private aNumeri 

       Sub  init ( sLunghetta, sChrSep)
                   Call alimentaVettoreLunghetta (sLunghetta, sChrSep)
        End sub
        Private sub alimentaVettoreLunghetta  (sLunghetta, sChrSep )
                      Call splitbychar (  (sChrSep&sLunghetta) , sChrSep, aNumeri ) 

          End sub 
End class 
Sub  main 
End sub
Sempre da cellulare
Let s go :)
Buona domenica a tutti
 
Ultima modifica:
Ciao Legend , ora è tutto ok .. facciamo che il codice una volta capito come va scritto poi lo metto io
ben formattato cosi chi ci segue sa che deve copiare solo il codice dei miei post per evitare di fare confusione
Anzi in particolare mano mano che scriveremo il codice per renderlo ancora piu riconoscibile lo scrivero di colore blu e in grassetto , quindi tutti i post che contengono il codice in blu e in grassetto
sono i vari passi dello sviluppo del nostro script .. sai che ti dico li numero pure ..

ci siamo tutti fino a qui ? Avete capito cosa abbiamo fatto ? A te legend che sembri quello che si adopera di piu ti è chiaro cosa abbiamo fatto ?
Anche voi Joe e Mike anche se seguite marginalmente ditemi se vi è chiaro o no , ripeto abbiamo modellato un oggetto
per fare certe cose che ci servono , questo oggetto avrà una vita propria e dispone di proprietà e metodi , per ora riesce
a ricevere dall'esterno una lunghetta di numeri e un carattere separatore e internamente memorizza i numeri della lunghetta in un array.
Una volta modellato come se fosse uno stampo potremo creare quante istanze vogliamo del nostro oggetto , ognuno rappresenterà una lunghetta.



1
Codice:
[COLOR=#0000CD][B]Option Explicit
Class clsLunghetta
    Private aNumeri ' contiene i numeri della lunghetta
    ' inizializza le proprietà dell'oggetto
    Sub Init(sLunghetta,sChrSep)
        ' alimento il vettore con i numeri della lunghetta
        Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
    End Sub
    Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
        ' antepongo un carattere separatore per fare in modo che
        ' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
        Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
    End Sub
End Class
Sub Main

    'questo codice serve solo per testare se la classe funziona
    
    Dim clsL ' dichiaro una variabile che conterrà l'istanza della classe
    Set clsL = New clsLunghetta ' creo l'istanza della classe
    Call clsL.Init ( "1.2.3" , "." ) ' richiamo il metodo init
    Set clsL = Nothing ' anniento l'istanza della classe
    
    Scrivi "Test ok"
End Sub[/B][/COLOR]
 
Ultima modifica di un moderatore:
ok , ora visto che i concetti che useremo sono identici possiamo continuare ad estendere lo script , in attesa disapere se sia tutto chiaro anche agli altri

Abbiamo visto che la classe riceve dall'esterno la lunghetta e il carattere separatore , queste non sono le uniche cose che servono.
la classe dovra avere delle variabili private che memorizzino il range di analisi , le ruote , la sorte in gioco.
Tutti questi valori vanno passati alla classe nello stesso modo che sappiamo estendendo il metodo init,
Vai Legend procedi ...
 
Ultima modifica di un moderatore:
LuigiB;n1935352 ha scritto:
ok , ora visto che i concetti che useremo sono identici possiamo continuare ad estendere lo script , in attesa disapere se sia tutto chiaro anche agli altri

Abbiamo visto che la classe riceve dall'esterno la lunghetta e il carattere separatore , queste non sono le uniche cose che servono.
la classe dovra avere delle variabili private che memorizzino il range di analisi , le ruote , la sorte in gioco.
Tutti questi valori vanno passati alla classe nello stesso modo che sappiamo estendendo il metodo init,
Vai Legend procedi ...


Ci sono. Procediamo pure :) . Ribadisco... MI TI CI ;) :cool:
Good Sunday Friends
 
Ultima modifica:
Codice:
Option Explicit 
Class ClsLunghetta 
Private aNumeri 
Private aRuote (12)
Private m_Inizio
Private m_Fine
Private m_Sorte
Public  property Let inizio (newValue )
M_inizio =newValue 
End property 
Public property get Inizio
Inizio =m_inizio
End property
Public  property Let Fine  (newValue)
m_Fine=newValue 
End property 
Public  property get Fine
Fine=m_Fine
End property 
Public property  Let  Sorte (newValue )
m_Sorte =newValue 
End property 
Public property get Sorte 
Sorte=m_Sorte 
End property
End class

Dichiarate le variabili pronte da utilizzare
Sto cercando di fare come dai tuoi appunti
Prima passo Let poi get
Fin qui?
Ciao a tutti:)
 
non va bene .. io non ho fatto menzione di scrivere proprietà ...avevo suggerito di estendere il metodo Init con la stessa logica usata fino a qui ..
 
Luigi non ho capito .
Personalmente passerei i parametri alla sub:

sub init( sLunghetta, sChrSep, aRuote, sorte,Inizio, Fine )
Ma così facendo scrivo la sub classica che già sappiamo fare.
Illuminami perfavore:)
Ciao:)
 
e bhe .. che male c'è ? se la sai fare è meglio :-) è proprio in quel modo che avevo detto . qui non cambia il modo di scrivere il codice cambia l'approccio , stiamo creando un oggetto cosa che non facciamo quando facciamo uno script chiamiamolo "classico"
 
Codice:
Option Explicit
Class clsLunghetta
    Private aNumeri ' contiene i numeri della lunghetta
    ' inizializza le proprietà dell'oggetto
    Sub Init(sLunghetta,sChrSep,aRuote, sorte,ini,fin)
        ' alimento il vettore con i numeri della lunghetta
      Dim  Rit, RitMax, Incr, Freq 
  Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
Call statisticaformazioneturbo( aNumeri, aRuote, sorte, rit, RitMax, Incr, Freq, ini,fin)
Redim aRitardi (0)
Call elencoritarditurbo (aNumeri, aRuote, sorte, ini,fin,a Ritardo, 0)
    End Sub
    Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
        ' antepongo un carattere separatore per fare in modo che
        ' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
        Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
    End Sub
End Class
Sub Main

    'questo codice serve solo per testare se la classe funziona
    Dim sorte, ini, fin 
Redim aRuote ( 0 ) 
    Dim clsL ' dichiaro una variabile che conterrà l'istanza della classe
    Set clsL = New clsLunghetta ' creo l'istanza della classe
    Call clsL.Init ( "1.2.3" , ".",aRuote, sorte, ini, fin  ) ' richiamo il metodo init
    Set clsL = Nothing ' anniento l'istanza della classe
    
    Scrivi "Test ok"
End Sub
Ciao inserito i parametri e le funzioni
Così va bene?
:)
 
Ultima modifica:
Sembra funzionare .ho provato Freq e rit restituisce i valori corretti:)
Ma la stringa numeri comincia da 0 non da 1
Dove sbaglio?
 
Ultima modifica:
legend.. legendino carooooo ... vuoi che vengo li a spezzarti le braccine ? Di su non farmi arabbiare --- sto scherzando però non devi fare una sola cosa in più di quelle che suggerisco io ... invece di partire per la tangente perché non inserisci ste benedette variabili private per memorizzare range , ruote e sorte e le passi attraverso la sub init ? Cancella tutto e fai quello che ho suggerito ... poi ci si risente ....
 
Codice:
Option Explicit
Class clsLunghetta
    Private aNumeri ' contiene i numeri della lunghetta
Private aRuote ( 12 ) 
Private  Ini
Private  Fin
Private  Sorte
    ' inizializza le proprietà dell'oggetto
    Sub Init(sLunghetta,sChrSep,aRuote, sorte, ini, fin )
        ' alimento il vettore con i numeri della lunghetta
        Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
    End Sub
    Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
        ' antepongo un carattere separatore per fare in modo che
        ' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
        Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
    End Sub
End Class
Sub Main

    'questo codice serve solo per testare se la classe funziona
    
    Dim clsL ' dichiaro una variabile che conterrà l'istanza della classe
    Set clsL = New clsLunghetta ' creo l'istanza della classe
    Call clsL.Init ( "1.2.3" , "." ) ' richiamo il metodo init
    Set clsL = Nothing ' anniento l'istanza della classe
    
   
End Sub
Dichiarate con private e inserite nella sub
Ora vediamo che ne facciamo:)
Ps
Se mi spezzi le braccine poi io scrivo con i ditini
;)hihihihi
Non e così facile liberarsi di me:)
Hihihihihi
 
oh bene .. quasi ci siamo .. ora hai dichiarato le variabili private , devi solo correggere aRuote
non deve avere indici ..va dichiarata come le altre ..

in vbscript qualsiasi variabile è una variabile variant quindi puo contenere qualsiasi cosa anche un vettore come nel caso delle ruote , non devi dimensionarla a priori anche perché che ne sai di quante ruote ti passerà il chiamante ?
Le ruote le decide lui .. tu devi solo preparare la variabile per accogliere il valore che ti arriva.

ora che hai dichiarato le variabili private esse sono visibili in tutta la classe, quello che volevamo , pero ancora non hanno un valore in quanto hai dimenticato di trascrivere i valori ti arrivano dal metodo Init...

Init è usato dal chiamante per dare un valore specifico alle variabli usate dentro la classe, quando il chiamate ti da i valori tramite Init tu li devi memorizzare nelle variabili locali private..

vai continua l'implementazione.
 
Allora sappiamo che per valorizzare i parametri devo utilizzare degli inputbox per le date e la sorte e scegli ruote per la ruote.
Ora la mia domanda è scrivere delle piccole funzioni fuori o devo scriverle nella sub init?
Quanta pazienza ci vuole:)?
Tanta:;
 
legend non abbiamo parlato di nessuna input box .. il metodo init ricevera altri parametri , nel metodo init si valorizzano le variabili interne allla classe con i valori ricevuti dall'esterno.
lo abbiamo gia fatto con il vettore aNumeri che ora contiene i numeri che si trovavano in sNum.
 
guarda che se non riuscite a scrivere il codice il povero lottotom non avrà il suo script ...
 
Ultima modifica di un moderatore:
Codice:
Option Explicit
Class clsLunghetta
    Private aNumeri ' contiene i numeri della lunghetta
Private aRuote 
Private  Ini
Private  Fin
Private  Sorte
    ' inizializza le proprietà dell'oggetto
    Sub Init(sLunghetta,sChrSep,aRu, nSrt, inizio, fine )
        ' alimento il vettore con i numeri della lunghetta
aRuote =aRu
Sorte=nsrt
Ini=inizio 
Fin=fine
        Call AlimentaVettoreLunghetta(sLunghetta,sChrSep)
    End Sub
    Private Sub AlimentaVettoreLunghetta(sLunghetta,sChrSep)
        ' antepongo un carattere separatore per fare in modo che
        ' aNumeri si valorizzi dall'indice 1 (senno si sarebeb valorizzato dall'indice 0)
        Call SplitByChar((sChrSep & sLunghetta),sChrSep,aNumeri)
    End Sub
End Class
Sub Main

    'questo codice serve solo per testare se la classe funziona
    
    Dim clsL ' dichiaro una variabile che conterrà l'istanza della classe
    Set clsL = New clsLunghetta ' creo l'istanza della classe
    Call clsL.Init ( " 1.2.3 ", ". ", aRu, nSrt, inizio, fine ) ' richiamo il metodo init
    Set clsL = Nothing ' anniento l'istanza della classe
    
   
End Sub
Dichiarate con private e inserite nella sub
Sto cercando di capire anche dai tuoi esempi :)

Corretto:)
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 22 novembre 2024
    Bari
    27
    45
    81
    17
    55
    Cagliari
    78
    66
    45
    03
    14
    Firenze
    14
    90
    72
    88
    55
    Genova
    33
    23
    82
    81
    24
    Milano
    25
    79
    13
    42
    15
    Napoli
    39
    35
    65
    01
    14
    Palermo
    25
    83
    69
    50
    36
    Roma
    25
    71
    22
    10
    55
    Torino
    59
    30
    43
    74
    49
    Venezia
    39
    90
    77
    05
    35
    Nazionale
    82
    60
    62
    65
    59
    Estrazione Simbolotto
    Torino
    44
    12
    32
    06
    13
Indietro
Alto