LottoGAM Forum

Nuovo progetto sviluppo software

« Older   Newer »
  Share  
view post Posted on 23/3/2021, 17:17

Supporter

Group:
Member
Posts:
34

Status:


CITAZIONE (Palas @ 23/3/2021, 17:08) 
Moro_80 io sono sulla tua onda, mi sto apprestando per capire qualche cosa dei moduli o classi e come prepararli e richiamarli
ma non ci arrivo, li devo forse digerire ma non credo che l'età mi possa dare una mano ancora.
quindi sono fermo e non è alla mia portata attuale.

Ciao Palas,
avevo visto qualche tuo intervento, tranquillo il mio era un parlare generico.
Anche io devo ancora capire bene i moduli, le strutture, gli array e gli e vorrei tanto capire con esempi anche banali, ma da soli è difficile...ecco perchè chiedo aiuto a qualcuno che spieghi.
L'età non conta secondo me, se hai passione e caparbietà qualcosa ne esce.

Saluti
 
Top
view post Posted on 23/3/2021, 18:03

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


io ho provato a speigare con degli esempi che c'è che non è chiaro ?
 
Top
view post Posted on 23/3/2021, 18:44

Curioso

Group:
Member
Posts:
27

Status:


Luigi faccio un esempio, mi serve capire se è giusto il concetto che cerco di spiegare o dove sbaglio perchè non ho capito.

vorrei fare una function che mi permetta di sviluppare integralmente un sistema

questa è la videata che ho preparato

1esempio


v= è uguale 10 numeri che devono girare
k = è uguale a 5 è la classe che voglio sviluppare

dovrei sviluppare nella routine 252 combinazioni integrali

2esempio_0


OK.
ora ammesso che riesco a fare questa routine che mi sviluppa queste colonne

quello che ho capito è che questa function per usarla anche in futuro, dovrei registrare un modulo
che contenga le istruzioni , dandogli un nome [giusto o sbagliato?]

ed una volta registrata, richiamarle per nome, passargli le variabili necessarie,
ed ottenere il risultato o lo sviluppo che voglio ottenere, quando pigio il bottone esegui


domanda è giusto o sbagliato quello che sto scrivendo?

il bottone esegui lo devo mettere a livello del form dove mi aspetto di vedere il risultato o lo sviluppo
o in una arrays o a video se sono poche colonne


purtroppo questo non fa parte del progetto che stai facendo, ma è per capire qualche concetto e differenza tra moduli e classi

è una delle istruzioni che uso spesso in spaziometria SVILUPPOINTEGRALE
 
Top
view post Posted on 23/3/2021, 19:50

Supporter

Group:
Member
Posts:
34

Status:


CITAZIONE (luigibLotto @ 23/3/2021, 18:03) 
io ho provato a speigare con degli esempi che c'è che non è chiaro ?

Luigi,
gli esempi da te fatti sono chiarissimi, a volte semplicissimi ricordo però che siamo passati da questo:

png

con il codice che alimentava la lista:

png

Quindi tutto in una routine...

A questo:

png

Tu dirai, vabbè che vuoldire? il concetto è lo stesso..

Si il concetto magari anche si, ma qui ora ci sono 4 Function da scrivere da 0, con il passaggio dei dati e le Call tra una e l'altra...

Diciamo che qualche dubbio, tra l'esempio della lezione e il compito da fare viene... :D
 
Top
view post Posted on 23/3/2021, 21:27

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


il passaggio dei dati lo fa da solo .. la logica è gia implementata... la funzione che vi ho chiesto è assolutamente paragonabile ad uno script .. nonha niente a che fare con nessun altra parte del programma , deve leggere un file e alimentare un array ... non ti spaventare Moro .. la logica è la stessa davvero !

in spaziometria ovviamente esistono una serie di funzioni precostituite ma in un programma scritto da 0 le funzioni che servono uno le deve scrivere da solo.
Si possono usare moduli o classi o anche a livello di form , dipende dalleesigenze
scrivendole in un modulo sono pubblichee visibili a tutte le altre parti del progetto
se le scrivi a livvell odi form sono visibili solo a quel form
se le scrivi in una classe la classe va istanziata.
Talvolta si preferisce usare una classe perche una classe a differenza di un modulo è un oggetto il che significa che puo avere proprietà e metodi per fornire un interfaccia alle funzzioi che offre al suo interno.

Tempo fa feci proprio un esempio sull'altro forum della classe per sviluppare integralmente le serie numeriche ...




CITAZIONE (Palas @ 23/3/2021, 18:44) 
Luigi faccio un esempio, mi serve capire se è giusto il concetto che cerco di spiegare o dove sbaglio perchè non ho capito.

vorrei fare una function che mi permetta di sviluppare integralmente un sistema

questa è la videata che ho preparato

1esempio


v= è uguale 10 numeri che devono girare
k = è uguale a 5 è la classe che voglio sviluppare

dovrei sviluppare nella routine 252 combinazioni integrali

2esempio_0


OK.
ora ammesso che riesco a fare questa routine che mi sviluppa queste colonne

quello che ho capito è che questa function per usarla anche in futuro, dovrei registrare un modulo
che contenga le istruzioni , dandogli un nome [giusto o sbagliato?]

ed una volta registrata, richiamarle per nome, passargli le variabili necessarie,
ed ottenere il risultato o lo sviluppo che voglio ottenere, quando pigio il bottone esegui


domanda è giusto o sbagliato quello che sto scrivendo?

il bottone esegui lo devo mettere a livello del form dove mi aspetto di vedere il risultato o lo sviluppo
o in una arrays o a video se sono poche colonne


purtroppo questo non fa parte del progetto che stai facendo, ma è per capire qualche concetto e differenza tra moduli e classi

è una delle istruzioni che uso spesso in spaziometria SVILUPPOINTEGRALE
 
Top
view post Posted on 24/3/2021, 00:16

Supporter

Group:
Member
Posts:
34

Status:


CITAZIONE (luigibLotto @ 23/3/2021, 21:27) 
il passaggio dei dati lo fa da solo .. la logica è gia implementata... la funzione che vi ho chiesto è assolutamente paragonabile ad uno script .. nonha niente a che fare con nessun altra parte del programma , deve leggere un file e alimentare un array ... non ti spaventare Moro .. la logica è la stessa davvero !

in spaziometria ovviamente esistono una serie di funzioni precostituite ma in un programma scritto da 0 le funzioni che servono uno le deve scrivere da solo.
Si possono usare moduli o classi o anche a livello di form , dipende dalleesigenze
scrivendole in un modulo sono pubblichee visibili a tutte le altre parti del progetto
se le scrivi a livvell odi form sono visibili solo a quel form
se le scrivi in una classe la classe va istanziata.
Talvolta si preferisce usare una classe perche una classe a differenza di un modulo è un oggetto il che significa che puo avere proprietà e metodi per fornire un interfaccia alle funzzioi che offre al suo interno.

Luigi non mi spavento, e credo a quanto dici riguardo la logica che è la stessa.
Fatto sta che pur seguendo la lezione leggi file, io nel tuo sorgente non riesco a far apparire le estrazioni nel browser...mi da sempre "archivio estrazioni non valido" sarà che per farle apparire bisogna aver completato tutte le funzioni correttamente, sarà che non alimento correttamente l'array, sarà altro non lo so...ma a me non appaiono.
A sto punto basta, inutile continuare, sono fermo e non capisco come incastrare il tutto, e l'esempio della lezione non mi aiuta, passo la palla e attendo gli esperti degli script, magari loro hanno la soluzione a portata di mano e spero la condividano con gli altri.

Buona Notte!

Edited by Moro_80 - 24/3/2021, 07:09
 
Top
view post Posted on 24/3/2021, 07:40

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


Ciao Moro , non sarà che la funzione che legge le estrazioni deve tornare true per far sapere al chiamante che è riuscita a compiere il lavoro ?
 
Top
view post Posted on 24/3/2021, 09:53

Supporter

Group:
Member
Posts:
34

Status:


CITAZIONE (luigibLotto @ 24/3/2021, 07:40) 
Ciao Moro , non sarà che la funzione che legge le estrazioni deve tornare true per far sapere al chiamante che è riuscita a compiere il lavoro ?

Buondì Luigi,
certo, 2 function sono dichiarate come Boolean, dunque hanno bisogno dell'assegnazione True affinche si proceda al passo successivo.

L'avevo provata anche tempo fa, ma non mi aveva aiutato a capire il problema, nel senso col True ho si la schermata iniziale del programma ma all'apertura del Browser, ottengo questo:
png
Evidentemente qualcosa non va nell'alimentazione dell'array ed è proprio li il mio problema...non ho ben capito cosa devo far fare alle varie function.
Esempio, in alimentaestrazioni io arrivo allo split della riga e vedo che ha dentro i record:
png

Da qui mi incasino perchè non so come far capire/partire le altre function che mi devono restituire i dati che evidentemente non ho...
 
Top
view post Posted on 24/3/2021, 11:08

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


coa Moro , c'è quell'oggetto che si chiama cArchivio dove è presente la procedura che devi scrivere.
questo oggetto ha un array dichiarato a livello globale che si chiama aEstrazioni ed è del tipo struct_Estrazione

la procedura che intanto devi scrivere è quella che si coccupa di leggere il file csv e mi sembra che ci sei
per ogni record del file csv devi prendere i valori e trascriverli nell'elemento idEstr dell'array delel estrazioni

per fare questo dovrai alimentare i diversi campi di quella struttura

la parte un pochino piu complessa è passare alle 11 ruote i relativi numeri , ma questo si fa facilemnte con due cicli for nidificati
ruote / posizioni
nel ciclo piu interno si incrementa in contatore che ad ogni nuovo recorddel csv inizia da 2 , quindi la prima volta chesi incrementa diventa 3 poi 4 e cosi via
stessa cosa per tutti i record
sempre nel ciclo piu inderno dopo che hai incrementato questo contatore ti puoi riferire all'elemento

aEstrazioni(idEstr).Ruote(R).aN(e)

alquale devi assegnare il valore letto dall'array che avevi ottenuto dallo split questo valore è indicato dalla variabile che si incrementa...che ti ho detto
 
Top
view post Posted on 24/3/2021, 17:13

Supporter

Group:
Member
Posts:
34

Status:


CITAZIONE (luigibLotto @ 24/3/2021, 11:08) 
coa Moro , c'è quell'oggetto che si chiama cArchivio dove è presente la procedura che devi scrivere.
questo oggetto ha un array dichiarato a livello globale che si chiama aEstrazioni ed è del tipo struct_Estrazione

la procedura che intanto devi scrivere è quella che si coccupa di leggere il file csv e mi sembra che ci sei
per ogni record del file csv devi prendere i valori e trascriverli nell'elemento idEstr dell'array delel estrazioni

per fare questo dovrai alimentare i diversi campi di quella struttura

la parte un pochino piu complessa è passare alle 11 ruote i relativi numeri , ma questo si fa facilemnte con due cicli for nidificati
ruote / posizioni
nel ciclo piu interno si incrementa in contatore che ad ogni nuovo recorddel csv inizia da 2 , quindi la prima volta chesi incrementa diventa 3 poi 4 e cosi via
stessa cosa per tutti i record
sempre nel ciclo piu inderno dopo che hai incrementato questo contatore ti puoi riferire all'elemento

aEstrazioni(idEstr).Ruote(R).aN(e)

alquale devi assegnare il valore letto dall'array che avevi ottenuto dallo split questo valore è indicato dalla variabile che si incrementa...che ti ho detto

Luigi, io con una cosa simile credo di avere i dati della parte che tu chiami "un pochino più complessa"...

CODICE
Private Function AlimentaEstrazioni(sFile As String) As Boolean
  Dim f As Integer
  Dim sRiga As String
  Dim nEstrTot As Integer
  Dim nEstrMax As Integer
  Dim idCol As Long
  Dim R As Long
  Dim e As Long
  Dim idEstr As Long
  nEstrMax = 100
  ReDim aEstrazioni(nEstrMax) As struct_estrazione
 
  f = FreeFile
  Open sFile For Input As f
  Do Until EOF(f)
      Line Input #f, sRiga
      nEstrTot = nEstrTot + 1
      If nEstrTot > nEstrMax Then
         nEstrMax = nEstrMax + 100
         ReDim Preserve aEstrazioni(nEstrMax) As struct_estrazione
      End If
      ReDim av(0) As String
      av = Split(sRiga, ";")
      For R = 1 To 11
         For e = 1 To 5
         idCol = 2
         idCol = idCol + 1
         aEstrazioni(idEstr).Ruote(R).aN(e) = av(idCol)
         Next
      Next
  Loop
  Close f
  ReDim Preserve aEstrazioni(nEstrTot) As struct_estrazione
  AlimentaEstrazioni = True
End Function


Mi manca questa e non mi è chiara :
CITAZIONE
per fare questo dovrai alimentare i diversi campi di quella struttura

Dai che piano piano ci si arriva... ;_; ;_;
 
Top
view post Posted on 24/3/2021, 17:42

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


la struttura oltre ai numeri contiene la data , e gli indici ..
comunque c'è un errore .. scusa è se ogni volta lo fai ripartire da 2 quand'è che si incrementa ? deve partire da 2 ma prima dei cicli ....
 
Top
view post Posted on 24/3/2021, 23:53

Supporter

Group:
Member
Posts:
34

Status:


Ciao Luigi,
si ok, il contatore deve stare fuori dai cicli, per la struttura ok, dallo split con av(0), av(1), av(2) etc etc ho i vari indici, data etc etc

Il mio problema è capire cosa far fare e a chi, nel senso in quale funzione.
Non so se è giusto come ho scritto io nella function AlimentaEstrazioni fargli fare i cicli etc etc oppure se è da fare nella function GetEstrazione, se è corretto come fatto da me, che cavolo deve fare GetEstrazione?

Perchè hai predisposto 3 funzioni diverse? una per l'estrazione, una per la data e l'altra per id, indice etc etc ??

Poi, infine, cosa si intende per "Friend Function" ? cosa ha di diverso dalle altre?

Cerca di spiegarmi bene i vari passaggi Luigi, ovviamente se ne hai voglia :D


Notte a tutti!
 
Top
view post Posted on 25/3/2021, 00:02

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


Perche una classe deve essere versatile , quellw tre funziioni che hai detto sono facilissime da implementare .. una sola riga di codice

per esempiio GetEstrazione

GetEstrazione riceve un parametro che è l'id dell'estrazione che il chiamante vuole , e c'è un altro parametro che è la variabile nella quale verra scritta l'estrazione voluta

lset strctE =aEstrazioni(id)

copia il valore contenuto nel'elemento ID dell'array dentro la variabile strctE

lset si usa per assegnare ad un intera struttura il valore di un altra ugale

per assegnare un valore al singolo campo strctE.Data.Data = "una data valida"

frined serve per consentire nelle funzioni scritte nell classi l'uso di udt che altrimeti non si potrebebro usare
 
Top
view post Posted on 25/3/2021, 08:42
Avatar

Top Member

Group:
Administrator
Posts:
1,719

Status:


Ciao,

confesso di essere un po' rimasto al palo per motivi di tempo, ma anche perché credo sia una fase delicata di approfondimento.
Mastico un po' di VB6 ma per come (ottimamente!) impostato il prg da luigibLotto , ben lungi da me dal riuscire a fare per ora passi da gigante.
L'impostazione è veramente top, per chi ha forse conoscenze al top.

In attesa di nuovi suggerimenti o upgrade dei sorgenti, buona giornata
Saluti
 
Web  Top
view post Posted on 25/3/2021, 17:43

Senior

Group:
ProgettoSoftware
Posts:
109

Status:


Ciao Gam Mettero a disposizione is sorgenti non appena il programam si consolida un po .. vorreievitare di metterl ocon qualche bug .. .
 
Top
178 replies since 7/3/2021, 14:39   4581 views
  Share