Novità

TWINBASIC

L

LuigiB

Guest
Grazie Luigi, per gli scrip dovrò prima dimenticare quel poco che avevo imparato con spaziometria
Poi ricomincerò da capo seguendo gli esempi di altri bravi utenti e provare a capire il loro significato e la giusta sintassi, piano piano ovviamente
Notte Luigi Docet!
Assolutamente no , anzi se già hai visto qualcosa in spazioemtria sei avvantaggiata .. la logica è identica possono cambiare i nomi di alcune funzioni ma non è certo quell oil problema anche perche sono pure piu potenti , altra differenza è la tipizzazione delel variabili , negli script
per dichiarare uan variabile si faceva

Dim Paperino

e questa variabile poteva contenere indifferentemente contenere stringhe o numeri

in TwinBasic invece c'è la tipizzazione percio se devi contenere una stringa

Dim Paperino a s string

se devi contenere un numero intero

dim Paperino as long


se devi contenere un numero decimale

dim PAperino as double

il resto delle istruzionni i cicli , i costrutti condizionali eccetera sono identici , ecco perche chi sa fare un po' di script parte avvantaggiato.
Poi col tempo appena sarai piu pratica ti accorgerai che gli script fatti qui si possono fare in modo piu articolato e migliore ..
 

happy

Super member
Assolutamente no , anzi se già hai visto qualcosa in spazioemtria sei avvantaggiata .. la logica è identica possono cambiare i nomi di alcune funzioni ma non è certo quell oil problema anche perche sono pure piu potenti , altra differenza è la tipizzazione delel variabili , negli script
per dichiarare uan variabile si faceva

Dim Paperino

e questa variabile poteva contenere indifferentemente contenere stringhe o numeri

in TwinBasic invece c'è la tipizzazione percio se devi contenere una stringa

Dim Paperino a s string

se devi contenere un numero intero

dim Paperino as long


se devi contenere un numero decimale

dim PAperino as double

il resto delle istruzionni i cicli , i costrutti condizionali eccetera sono identici , ecco perche chi sa fare un po' di script parte avvantaggiato.
Poi col tempo appena sarai piu pratica ti accorgerai che gli script fatti qui si possono fare in modo piu articolato e migliore ..

Ciao Luigi,
ma le funzioni di base presenti in Spaziometria tipo SerieFreq(), SerieRitardo() ecc, sono già utilizzabili nei progetti di twinBasic?
Grazie
 

mirapep

Advanced Member >PLATINUM PLUS<
ciao Mirapep , l'unico modulo dove si deve scrivee il codice e sfruttare le fnzioni della libreria , come se fossero gli script di spaziometria è questo

Vedi l'allegato 2252777


in quel modulo prova a scrivere questo

Codice:
 Dim r  As Long
       
         Call Scrivi(GetInfoEstrazione(EstrazioneFin))
         For r = 1 To 11
            Call Scrivi(FormatString(NomeRuota(r), Space$(14), 0) & " - " & StringaEstratti(EstrazioneFin, r))
         Next

Vedi l'allegato 2252778

Grazie Luigi, tutto ok l'esempio viene eseguito correttamente.

Infatti è meglio che mi dedichi agli script, troppo difficile capire la struttura del TestConsumer.

Se volessi eseguire una ricerca sulla ruota di Bari per frequenze, ritardi e ritardi max dei 90 numeri su tutte le estrazioni il file Archivio viene aperto ad ogni ciclo o le estrazioni sono in memoria in una variabile? Io n ei miei programmini in vb6 all'avvio carico le estrazioni in una variabile long e le operazioni le eseguo su questa. Quale procedimento è più veloce?
 
L

LuigiB

Guest
rispondo ad ambedue , le estrazioni vengono lette all'inizio e rimangono in memoria fno alla chiusura del programma


lo script semplicissimo per esempio ad Happy è questo , le funzioni ci sonoquasi tutte alle altre ci stiamo lavorando :.-)

devi sostituire la routine con questo nome nel modulo MyScript


Codice:
 Public Sub MyScriptRoutine()
        ' IN QUESTA ROUTINE VA SCRITTO IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETRIA
        ' ATTENZIONE NON CAMBIARE NOME ALLA ROUTINE
        
        Dim N As Long ' numero di cui cercare la statistica 
        Dim nSorte As Long = 1  ' cerco la sorte di estratto 
        Dim ruote As String = "1,2" ' faccio la statistica sulel prime 2 ruote 
        Dim frz As STRUCT_FRZ_STATISTICA_SINGOLO_ESITO ' è una variabile udt che contiene il risultato delal statistica 
        Dim sRecord As String ' serve pr cstruire la riga da mandare in output 
        
        For N = 1 To 90
            Call StatisticaSingoloEsito(N, EstrazioneIni, EstrazioneFin, nSorte, frz, ruote)
            
            sRecord = FormatString(CStr(N), "  ", 2)
            sRecord & = " "
            sRecord & = "Rit : " & FormatString(CStr(frz.RetValori.Ritardo), "    ", 2) ' formatta la stringa a 4 spazi con allineamento a destra
            sRecord & = " "
            sRecord & = "RitMAx : " & FormatString(CStr(frz.RetValori.RitardoMax), "    ", 2)
            sRecord & = " "
            sRecord & = "Presenze : " & FormatString(CStr(frz.RetValori.Presenze), "    ", 2)
            sRecord & = " "
            sRecord & = "PresMultiple : " & FormatString(CStr(frz.RetValori.PresenzeMultiple), "    ", 2)
            
            Call Scrivi(sRecord)
                    
            
              
        Next
        
     
           
    End Sub
 
L

LuigiB

Guest
altro esempio simile al precedente ma si puo fare la statistica su estratti ,ambi terni ...

incollare tutto nel modulo myscript al posto di quell oche c'è

Codice:
    Public Sub MyScriptRoutine()
        ' IN QUESTA ROUTINE VA SCRITTO IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETRIA
        ' ATTENZIONE NON CAMBIARE NOME ALLA ROUTINE
        
         
        Dim nSorte As Long = 1  ' cerco la sorte di estratto 
        Dim ruote As String = "1,2" ' faccio la statistica sulel prime 2 ruote 
        Dim frz As STRUCT_FRZ_STATISTICA_SINGOLO_ESITO ' è una variabile udt che contiene il risultato delal statistica 
        Dim sRecord As String ' serve pr cstruire la riga da mandare in output 
        Dim aNDaSvil () As Long ' numeri dasviluppare 
        Dim nClasse As Long = 2' sviluppo in ambi
        ReDim aCol(nClasse) As Long ' colonna di sviluppo 
        Dim nIntegrali As Long, nSviluppate As Long
        
        Call AlimentaNumeridaSviluppare(aNDaSvil)
        nIntegrali = InitSviluppoIntegrale(aNDaSvil, nClasse)
        If nIntegrali Then
      
                Do While GetCombSviluppo(aCol)
                
                    
                        Call StatisticaSingoloEsito(aCol, EstrazioneIni, EstrazioneFin, nSorte, frz, ruote)
                        
                        sRecord = StringaNumeri (aCol)
                        sRecord & = " "
                        sRecord & = "Rit : " & FormatString(CStr(frz.RetValori.Ritardo), "    ", 2) ' formatta la stringa a 4 spazi con allineamento a destra
                        sRecord & = " "
                        sRecord & = "RitMAx : " & FormatString(CStr(frz.RetValori.RitardoMax), "    ", 2)
                        sRecord & = " "
                        sRecord & = "Presenze : " & FormatString(CStr(frz.RetValori.Presenze), "    ", 2)
                        sRecord & = " "
                        sRecord & = "PresMultiple : " & FormatString(CStr(frz.RetValori.PresenzeMultiple), "    ", 2)
                        
                        Call Scrivi(sRecord)
                                
                        nSviluppate += 1
                        
                        If nSviluppate Mod 100 = 0 Then
                            DoEvents
                            Call AvanzamentoElaborazione(nSviluppate, nIntegrali)
                            
                            If bScriptInterrotto Then Exit Do
                            
                        End If
                Loop
                    
        End If
        Call AvanzamentoElaborazione(0, 0)
           
    End Sub
    
    Sub AlimentaNumeridaSviluppare(aN() As Long)
        Dim k As Long
        
        ReDim aN(90) As Long
        For k = 1 To 90
            aN(k) = k
        Next
    End Sub
 

happy

Super member
altro esempio simile al precedente ma si puo fare la statistica su estratti ,ambi terni ...

incollare tutto nel modulo myscript al posto di quell oche c'è

Codice:
    Public Sub MyScriptRoutine()
        ' IN QUESTA ROUTINE VA SCRITTO IL PROPRIO CODICE COME SE FOSSE LA SUB MAIN DI SPAZIOMETRIA
        ' ATTENZIONE NON CAMBIARE NOME ALLA ROUTINE
       
        
        Dim nSorte As Long = 1  ' cerco la sorte di estratto
        Dim ruote As String = "1,2" ' faccio la statistica sulel prime 2 ruote
        Dim frz As STRUCT_FRZ_STATISTICA_SINGOLO_ESITO ' è una variabile udt che contiene il risultato delal statistica
        Dim sRecord As String ' serve pr cstruire la riga da mandare in output
        Dim aNDaSvil () As Long ' numeri dasviluppare
        Dim nClasse As Long = 2' sviluppo in ambi
        ReDim aCol(nClasse) As Long ' colonna di sviluppo
        Dim nIntegrali As Long, nSviluppate As Long
       
        Call AlimentaNumeridaSviluppare(aNDaSvil)
        nIntegrali = InitSviluppoIntegrale(aNDaSvil, nClasse)
        If nIntegrali Then
     
                Do While GetCombSviluppo(aCol)
               
                   
                        Call StatisticaSingoloEsito(aCol, EstrazioneIni, EstrazioneFin, nSorte, frz, ruote)
                       
                        sRecord = StringaNumeri (aCol)
                        sRecord & = " "
                        sRecord & = "Rit : " & FormatString(CStr(frz.RetValori.Ritardo), "    ", 2) ' formatta la stringa a 4 spazi con allineamento a destra
                        sRecord & = " "
                        sRecord & = "RitMAx : " & FormatString(CStr(frz.RetValori.RitardoMax), "    ", 2)
                        sRecord & = " "
                        sRecord & = "Presenze : " & FormatString(CStr(frz.RetValori.Presenze), "    ", 2)
                        sRecord & = " "
                        sRecord & = "PresMultiple : " & FormatString(CStr(frz.RetValori.PresenzeMultiple), "    ", 2)
                       
                        Call Scrivi(sRecord)
                               
                        nSviluppate += 1
                       
                        If nSviluppate Mod 100 = 0 Then
                            DoEvents
                            Call AvanzamentoElaborazione(nSviluppate, nIntegrali)
                           
                            If bScriptInterrotto Then Exit Do
                           
                        End If
                Loop
                   
        End If
        Call AvanzamentoElaborazione(0, 0)
          
    End Sub
   
    Sub AlimentaNumeridaSviluppare(aN() As Long)
        Dim k As Long
       
        ReDim aN(90) As Long
        For k = 1 To 90
            aN(k) = k
        Next
    End Sub

(y)GRAZIE Luigi ,
ho lanciato lo script e mi ha restituito la statistica sull'intero archivio di 4005 ambi in 4,5 secondi circa:oops::).
Cerco di prendere confidenza. Per caso c'è anche un help delle funzioni?
 

Katia-Serra-Ippoliti

Advanced Member >PLATINUM<
Ciao a tutti, oggi pomeriggio la tentazione di provare l’ultimo aggiornamento di Luigi era troppo forte al punto di staccare con una pausa caffè per scaricare le sue ultime indicazioni.
Seguendo i suoi veloci passaggi tutto OK!
L’archivio si aggiorna OK.:
01-k.png
Chiudo le finestre e vado su Mycript > esegui Script, si apre la finestra con la griglia numeri e seleziono i primi 5 numeri naturali ; l’output evidenzia alla perfezione i 10 ambi che sviluppano i 5 numeri!
Leggo il listato e cambio la classe di sviluppo ( da 2 a 4 ) e dalla griglia seleziono sempre i primi 5 numeri naturali , lancio e nell’output vedo che i 5 terni collimano alla perfezione!:
02-K.png
Per un momento avevo incrociato le dita , invece tutto OK! Grazie Luigi Docet (y)
Katia
 

Katia-Serra-Ippoliti

Advanced Member >PLATINUM<
Buonasera Mirapep , grazie per il like ( non meritato ) perchè sono ancora l'ultima della classe.
Forse il mio ultimo messaggio non è ancora stato letto da altri ( avevo commesso un errore Voluto, ma solo per vedere se chi leggeva se ne sarebbe accorto...)
nel caso non arriveranno obiezioni lo rettifico
Katia
 

mirapep

Advanced Member >PLATINUM PLUS<
Buonasera, non sei l'ultima della classe. Già rispetto a me sei avanti considerato che, se non sbaglio, hai esperienza con gli script.
Non so qual'è l'errore "Voluto", a meno che ti riferisca allo sviluppo dei terni che dovevano essere 10 e invece sono giustamente 5 quaterne
 

Katia-Serra-Ippoliti

Advanced Member >PLATINUM<
Mirapep, io non sono per niente avanti con gli scrip perché con spaziometria faccio solo pastrocchi nel modificare e studiare le funzioni sugli script di altri utenti, sto imparando in questa maniera .
Poi ogni tanto viene un amico che mi sviluppa quello che mi serve in ambiente spaziometria ed anche da quello che mi mette a disposizione cerco di imparare forse non sarà la maniera più giusta ma non so fare altro anche se qualche passettino l’ho fatto e sono fiduciosa nel proseguire.
Per l’errore sei stato un occhio di falco e lo hai subito individuato era proprio quello! bravissimo ed attento.
Ho anche notato che in questo spazio che avevi aperto tu si può tranquillamente interagire tra utenti che al momento non sono ancora allineati a seguire l’altra sezione e credo che se ci diamo una mano tra noi ci potremo velocemente allineare
Ciao Mirapep ti invio un cordiale saluto e spero di rileggerti ancora in questa sezione, come spero che intervengano anche altri che erano passati da qui, e senza fare torti a nessuno e mi pare che Giomi & happy sia molto avanti, bravi
Katia
 

mirapep

Advanced Member >PLATINUM PLUS<
Buongiorno, scrivo qui per non sovraccaricare il 3D principale. Per favorire l'apprendimento sarebbe opportuno, se possibile, scrivere un breve commento per ogni riga di codice. Ad esempio perchè si usa redim, cosa fa una funzione che si sta richiamando.........
E' stato postato uno script per il tabellone analitico. In una riga si chiama una funzione

For Es = Fin To Ini Step -01
Call Messaggio(CStr(Es))

Non riesco a comprendere cosa fa Messaggio, nemmeno dall'help

Messaggio
Sub Messaggio(sMessaggio As Variant, Optional bInLista As Boolean = False)

overload

Sub Messaggio(sMessaggio As String, nColore As Long, Optional bInLista As Boolean = False)

Chiedo scusa, è chiaramente solo una richiesta
 

giomi

Banned
ciao mirapep,
quel messaggio nello script , fa vedere nella finestra un messaggio , appunto .
in quel caso si legge il numero progressivo delle estrazioni(es).
molte volte e' abbinato a Call AvanzamentoElab(ini,fin,es)
che evidenzia in una finestra ,la progressione , nell' elaborazione dati
non ancora provato in TB.
invece il carattere
Codice:
Funzione CStr

Converte un'espressione in un valore di tipo String.
 
L

LuigiB

Guest
ci sono tutta una serie di funzion iche sono come una cassetta degli attrezzi, di alcune di queste funzioni che sono sviluppate internamente al progetto twinbasic non vi è una descrizione dettagliata nell'help ma viene riportato solo il prototipo della funzione senza ulteriori dettagli.
Queste sono tutte quelle funzioni che nell'help stanno soto FUNZIONI ESTERNE , esterne perche non stanno nella libreria ma direttamente nel progetto twinbasic spesso sono molto simili se non uguali a quelle che c'erano in spaziometria.

piano piano aggiungendo degli esempi di codice e con un po' di dedizione sicuramente potrete sfruttare al meglio tutto l'ambiente.

mi raccomando di aggiornare sempre all'ultima versione che metto a disposizione
 

mirapep

Advanced Member >PLATINUM PLUS<
Per chi vuole collaborare in un progetto sugli archivi virtuali. E' necessaria la velocità di elaborazione.
Riporto, di seguito, il codice che impiego in vb6.

1. All'avvio il programma carica in memoria le matrici. Sono serie di numeri da 1 a 90 disposti casualmente in un file txt.

Dim aMat(500.000,90) as Long ' Variabile che memorizza 500.000 serie di 90 numeri da 1 a 90
dim posizione as integer
dim indice as long
dim l as single
dim a as string

Open "Percorso con il file Matrici.txt" for input as 1
While not eof (1)
indice=indice+1
line input #1, a
for l=1 to len(a) step 3 ' i numeri sono nel formato a 2 caratteri, es. 01, separati dal ;
posizione=posizione+1
if posizione=91 then posizione=1
aMat(indice, posizione)=val(mid(a, l, 2))
next
wend
close #1

Continua, se c'è interesse
 
L

LuigiB

Guest
ciao Mira conosco questa tuo interesse per le matrici , considera che twinbasic va molto piu lento di vb6 quindi se ti serve la velocità e devi scrivere tu il codice ti conviene continuare ad usare vb6 ..
 

Katia-Serra-Ippoliti

Advanced Member >PLATINUM<
Buonasera, per me una brutta serataccia mi si è già spento l’entusiasmo.
Fino a ieri sera funzionava tutto come da immagini che avevo allegato, questa sera avevo fatto il primo aggiornamento del pomeriggio e nel lanciare ed aggiornare ( non trova più l’archivio ) allora cancello e scarico l’ultimo aggiornamento anche in questo caso non trova l’archivio.
Lancio l’utility deregistra ma vedo che lo scroll dice che alcune voci non le trova o qualche cosa del genere e passo alla manuale con ( regedit ) dove una moltitudine di chiavi le cancello con elimina e sono sotto la voce ( CodeBase ) termino la deregistrazione manuale e vedo che sono presenti nel registro queste 2 chiavi:
reg----.png
Non le tocco e vado subito a riavviare il sistema, tiro un sospiro di sollievo quando vedo che tutto funziona , sia spazio che office ed il programma di lavoro…

Riprovo a rgistrare con l’utility l’ultima VSDLLGiochi.dll scaricata e riapro il progetto dopo averla referenziata e salvata ( nulla da fare l’archivio non lo trova più )

Cancello tutto e tengo solo la cartella di TwinBasic dove ci copio dentro questo file:
Twin-utility.png
Dovrò ripartire da capo ma non avrei idea di quale aggiornamento iniziare, se qualcuno mi potrebbe cortesemente dare una mano spiegando i passaggi glie ne sarei grata e Venerdi sera ci potrei riprovare.
Potrebbe essere che avevo cancellato la cartella ( Archivi dove ci avevo copiato l’archivio )?
Non mi viene in mente nessuna soluzione, grazie a chi posterà i nuovi passaggi e grazie comunque anche se nessuno sarà disponibile perché mi pare che non sia roba per la sottoscritta. Notte…
Katia
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 04 maggio 2024
    Bari
    02
    31
    81
    52
    21
    Cagliari
    39
    88
    84
    01
    67
    Firenze
    36
    30
    70
    06
    41
    Genova
    59
    23
    61
    22
    27
    Milano
    05
    17
    69
    57
    39
    Napoli
    81
    62
    82
    43
    50
    Palermo
    73
    55
    62
    45
    18
    Roma
    76
    70
    01
    64
    15
    Torino
    82
    55
    35
    70
    46
    Venezia
    58
    23
    61
    29
    21
    Nazionale
    10
    14
    01
    43
    09
    Estrazione Simbolotto
    Milano
    30
    01
    05
    32
    11

Ultimi Messaggi

Alto