Novità

MINICORSO VB

  • Creatore Discussione Creatore Discussione LuigiB
  • Data di inizio Data di inizio
Ciao Paciola ! Devo complimentarmi per i tuoi progressi ma soprattutto per la determinazione. Ineffetti anche i questo caso sarebbe molto meglio per te se io non ti dessi alcuna risposta e ti lasciassi
a confrontarti col problema ..infatti se prosegui su questa strada della programmazione situazioni simili saranno all'ordine del giorno ...
ad ogni modo per risponderti dovrei vedere il codice ... quindi dovresti postarlo.
un saluto !
 
Grazie Luigi per i "complimenti", non meritati del tutto perchè gran parte del lavoro è il tuo.:D
Cmq a parte questa "piccola" precisazione, volevo sapere devo postare tutto il progetto? Perchè postare solo le routine che aggiornano l'archivio è un po' un casino, sono tante e richiamano altre routine.
Come faccio?

Grazie
Davide
 
perfetto intendevo ovviamente che dovevi postare tutto il progetto.

Le'errore sta all'interno della funzione

SalvaEstrazione(strctE() As STRUCT_ESTRAZIONE, Optional idEstr As Long = 0)

ora ti devi domandare o ragionare in questo modo :

se quando aggiorno il file le estrazioni ogni volta si raddoppiano
è evidente che da qualche parte salvo piu dati di quelli che vorrei ..
altriemnti non sarebbe possibile che il file si raddoppiasse ogni volta...
bene stabilito questo e sapendo che quando si salvano
dei dati in un file si puo passare sia una singola struttura dati
ma anche un intero array di strutture dati dovresti domandarti :
allora una struttura dati qaunti byte sara grande ? diciamo 11 ruote
con 5 nueri definiti come byte fanno 55 byte piu i campi per la data e il numero estrazione che occupano un altro po' di byte .. di sicuro se salvassi una singola struttura il file non potrebbe mai raddoppiarsi ... bene bene fammi andare a vedere l'istruzione che salva effettivamente i dati nel file e arriveresti a :

Codice:
   Put f, nOffset, strctE

poi vedresti che strctE è un parametro della funzione
Codice:
Sub SalvaEstrazione(strctE() As STRUCT_ESTRAZIONE, Optional idEstr As Long = 0)

come vedi le 2 parentesi () fanno si che strctE non è una singola struttura ma un intero array</u> e inoltre l'istruzione
Put f, nOffset, strctE con un array è perfettamente lecita quindi non
da errori salva l'array nel file.
Ora dato che la funzione SalvaEstrazione si chiama
appunto SalvaEstrazione non salvaArrayEstrazioni cos a faremo per risolvere il problema ?


Ciao !
 
Allora in pratica dovrei levare le parentesi al parametro passato alla sub SalvaEstrazione.
Quindi dovrebbe diventare :

Sub SalvaEstrazione(strctE as STRUCT_ESTRAZIONE, Optional idEstr as Long = 0)

Se la risposta è corretta, mi viene fuori un errore nella Sub AggiornaEstrazioni nel Mod_AggiornaBaseDati.
In pratica una volta lanciata la sub AggiornaBaseDati vado a salvare
le estrazioni passando il parametro aRetEstr alla sub SalvaEstrazione.
L'errore deve essere qui secondo me, ma non riesco a risolverlo.

Spero di aver ragionato giusto.
Se puoi correggermi....Grazie

Davide
 
Ciao ,si quello che hai detto è giusto devi passare una struttura a salvaestrazione non un array il parametro va modificato.
Pero non basta... il problema è qui

Codice:
 ReDim aRetEstr(0) As STRUCT_ESTRAZIONE
                        Call AggiornaBaseDati(sRetFileTxt, aRetEstr, bAncheDaTelevideo)
                        FrmLog.AddLine ("Aggiorno base dati ...")
                        
                        Call SalvaEstrazione(aRetEstr)
                        FrmLog.AddLine ("Fatto !")

all'uscita della funzione AggiornaBaseDati tu ti ritrovi
sempre un array che contiene tutte le estrazioni lette
dal file zip piu quelle scaricate dal sito lottomatica.
Quidi devi gestire da quale estrazione salvare
La prima volta ad esempio quando l'archivo ancora non
esiste ovviamente dovra salvare tutte le estrazioni ma le volte successive dovra salvare solo le nuove estrazioni ...
e comunque sia anche quando le deve salvare tutte le deve
sempre salvare una alla volta passando l'elemento n dell'array
di volta in volta quindi il processo logico
che tu dovrai trasformare in codice è questo

1) Leggo l'ultima estrazioen presente in archivio e memorizzo
la data

2) faccio un ciclo sull'array aRetEstr

3) all'interno del ciclo testo se l'estrazione
aRetEstr(n) ha uan data maggiore di quella letta all'inizio

4) se si lancio la funzione salvaestrazione passando l'elemento n aRetEstr(n)

5) se no salto

6) alla fine del ciclo si saranno aggiornate solo le estrazioni
con data superiore aquella che avevo letto e che era l'ultima dell'archivio.


tutto questo era gestito leggwendo el date nelle righe del foglio excel tu invece dovrai solo aver cura di leggere l'ultima estrazione
del file.
Ovviamente se il file non è presente è come se l'ultima estrazione avesse data 0 e percio verrebbero salvate tutte le estrazioni
dell'array aRetEstr

Ciao
 
Grazie Luigi,
Il ragionamento l'ho capito perfettamente! Non sono sicuro di riuscire a trasformarlo in codice! Ma ci proverò certamente nei prossimi giorni e ti faro sapere gli sviluppi! Grazie ancora e buona notte!
Ciao
Davide
 
trasformarlo in codice è semplicissimo sono certo che saprai rispondere a queste domande

1) come si legge un estrazione x dall'archivio ?
2) come si fa un ciclo for ?
3) Come si imposta il costrutto decisionale If per testare se una data è maggiore di un altra specie se le date ce l'abbiamo gia suddivise in 3 campi giorno mese e anno ?
4) come si fa a salvare un estrazione nel file ?


come vedi la risposta a queste domande la dovresti conoscere perfettamente ...e quindi non dovresti avere problemi ...

ciao !
 
Ciao Luigi
allora, ho fatto le variazioni alla sub AggiornaEstrazioni che mi hai suggerito, non mi da alcun errore nel codice, ma ancora non funziona, nel senso che il file BaseDati viene sempre raddoppiato. Quindi un errore ci deve ancora essere per forza!![}:)]
Quello che non capisco è perchè quando faccio il ciclo For sull'array aRetEstr e vado a testare se la data è superiore a quella che ho in archivio, l'intellisense non mi appare. Cioè mi spiego meglio, se scrivo aRetEstr. essendo un tipo di dato STRUCT_ESTRAZIONE, dopo il punto dovrebbe aprirsi l'intellisense che mi fa vedere le proprietà idEstr, dataEstr ecc.
Invece non appare niente, ma non capisco come mai. Eppure è dichiarata come variabile.
Quando hai tempo mi ci dai un occhio per favore? Penso di esserci vicino ma non vedo ancora la luce!! :D

http://www.4shared.com/file/0o4XGL5l/LottoVB_1.html

Grazie come sempre e scusa la rottura di p...e!!!

Davide
 
Ariciao Luigi
ho capito perchè non viene fuori l'intellisense. Perchè con il ReDim l'intellisense non appare. Cos' ho tolto il Re e tutto funziona, tranne l'aggiornamento perchè continua a farmelo doppio.
Ho la testa rotta a furia di sbatterla.[B)][B)]

HEEEELLLLLPPPPPPPP


Davide
 
Siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Finalmente credo proprio di avercela fatta!!!!
Praticamente quando dalla routine AggiornaEstrazioni richiamavo la sub SalvaEstrazione e le passavo la struttura aRetEstr(k), mi dimenticavo di passarle k come idEstr e di conseguenza l'archivio mi veniva salvato di nuovo.
Almeno credo che il motivo sia quello.

Davide
 
Ciao Paciola,vedo che ti stai impegnando al massimo,
al contrario di me,che ogni volta che ci provo mi inchiodo,sarà l'età,stasera vedo di impegnarmi al massimo e ricominciare.
Spero che Luigi ci dia qualche listato di come fare una ricerca in archivio,in modo da leggerlo e capire come fare.
.
 
Grazie Atlantis
in effeti la mia è una passione che non sono mai riuscito a coltivare più di tanto perchè come basi avevo solo ed esclusivamente i libri.
E, per come la penso io, vale più un esempio pratico e visivo con spiegazione annessa (come ha fatto Luigi con le sue lezioni) che 10 libri. Anche se poi, ovviamente, anche loro servono, ma solo dopo che sai già di cosa si parla.
A parte questo, risolto un problema se ne fa sotto un altro.
Infatti credevo di aver risolto la questione dell'aggiornamento dell'archivio da internet, ma a quanto pare ne è sorto un altro. E cioè, una volta fatto l'aggiornamento vado a vedere nel Browser delle estrazioni se ci sono tutte e cosa vedo???[}:)][}:)][}:)]
Che la prima parte dalla n. 2 del 14/01/1939 anzichè dalla n. 1 del 07/01/1939 e l'ultima è quella del 29/09/2011.
Ora non capisco che cavolo ho combinato....prima lo salvavo doppio, ora è incompleto.....

http://www.4shared.com/file/T-WOxaN5/LottoVB_1_2.html

Io riallego il progetto, se il buon Luigi vuole buttarci un occhio e darmi un suggerimento gliene sono grato perchè oggi ho già perso 5 kg.!!!! :D

Grazie
Davide
 
Condivido pienamente ciò che hai scritto, anche io
riesco ad imparare più dai listati che dai libri,
agli inizi purtroppo ci vuole sempre l'input,
come bambini appena nati ,bisogna dargli da mangiare,
non tutti siamo Tarzan.:D:D
 
PS dimenticavo,
nel programma bisognerebbe mettere un DataWiew ? DataList? in questo momento non mi viene il termine esatto.
per vedere tutte le estrazioni contemporaneamente,
come facciamo con l'archivio in excel.
stasera leggo un pò di libri e ci provo.
 
quote:Originally posted by Atlantis57

PS dimenticavo,
nel programma bisognerebbe mettere un DataWiew ? DataList? in questo momento non mi viene il termine esatto.
per vedere tutte le estrazioni contemporaneamente,
come facciamo con l'archivio in excel.
stasera leggo un pò di libri e ci provo.

L'idea c'è come anche quella di inserire a mano una singola estrazione. Ma finchè l'archivio non è a posto, non mi muovo a fare niente di più.
Anche le statistiche....ne ho un po' in testa ma come faccio se la Base dati non è giusta?? [}:)][}:)][}:)]
Mi viene un nervoso quando non riesco a risolvere qualcosa!!!

Davide
 
In effetti è cosi,una volta sistemato l'archivio con tutte le sue funzioni,si passa alla fase successiva,
purtroppo abbiamo contro il tempo,almeno per me,ho solo un paio d'ore libere la sera.
va bè, va a finire che mi tocca telefonare,il problema è che mi scoccia dare fastidio agli amici,ma a male estremi,estremi rimedi, ci provo.[:I][:I]
 
quote:Originally posted by Atlantis57

In effetti è cosi,una volta sistemato l'archivio con tutte le sue funzioni,si passa alla fase successiva,
purtroppo abbiamo contro il tempo,almeno per me,ho solo un paio d'ore libere la sera.
va bè, va a finire che mi tocca telefonare,il problema è che mi scoccia dare fastidio agli amici,ma a male estremi,estremi rimedi, ci provo.[:I][:I]

Telefonare a chi?!?!?:)

Purtroppo anch'io ho solo tempo un paio d'ore alla sera, sempre che mia moglie non mi reclami.
Oggi ho rubato qualche oretta all'ufficio perchè il mio capo non c'era, ma di solito non lo faccio. E' che sto problema mi ha preso la testa e non mi mollerò finchè non sarò risolto!!! :D:D
 
Telefonare ad un mio amico,anche lui programmatore professionista
in VB ed altro,sperando che sia disponibile.
se no, con questi passi il programma non si farà mai,
va a finire tutto nel dimenticatoio,
ci ho provato varie volte negli anni,
poi mi sono arreso passando ad excel,
quì ho avuto un pò di soddisfazioni ,
sono riuscito a fare i programmi che volevo,
anche se spartani,l'importante è raggiungere lo scopo.
Ma la soddisfazione più grande resta sempre quella di imparare il VB.
 
Eh beato te!
Io, a parte Luigi, non conosco nessuno che possa darmi una mano.
Per cui tutto quello che verrà fuori sarà farina del mio sacco (e di quello di Luigi) :D:D

Davide
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto