Novità

NUOVO AMBIENTE SCRIPT AREA TECNICA

  • Creatore Discussione Creatore Discussione LuigiB
  • Data di inizio Data di inizio
Buongiorno a tutti! Penso sia molto meglio contare (prima) quanti siano gli oggetti da visualizzare, e poi dopo, si dimensiona il vettore o la matrice e si procede finalmente a scorrere (di nuovo) per popolare vettore o matrice e visualizzare le informazioni ivi memorizzate. Questo si ottine al costo di un piccolo decadimento velocistico, ma il risultato e' sempre corretto e senza i problemi di fare stime alla cieca. Non credo sia necessariamente irrinunciabile visualizzare dinamicamente la costruzione del risultato finale… in modo particolare se non e' gia' noto a priori quali siano le informazioni sulle quali si concentrera' il proprio focus!
 
Ultima modifica:
Ciao Rookie molto probabilmente
Si parte da qualche milione di righe e poi un filtro farà il taglio.
Il problema è che non si sa.
Una soluzione e fare una stringa il calcolo viene fatto solo una volta si contano i valori e poi si dplitta per ordinare
..
Fare il calcolo 2 volte una per dimensionare e poi rifarlo si impiega più tempo, ma forse ho capito male .
Potresti fare un esempio in pseudo codice?
Buona domenica a tutti.
 
Ciao Rookie molto probabilmente
Si parte da qualche milione di righe e poi un filtro farà il taglio.
Il problema è che non si sa.
Una soluzione e fare una stringa il calcolo viene fatto solo una volta si contano i valori e poi si dplitta per ordinare
..
Fare il calcolo 2 volte una per dimensionare e poi rifarlo si impiega più tempo, ma forse ho capito male .
Potresti fare un esempio in pseudo codice?
Buona domenica a tutti.
In linea generale:
Io non procedo mai a creare un modulo che visualizza quanto rilevo scorrendo i dati. Primo, perche' costa molto tempo visualizzare il log di cio' che avviene (e' utile solo in caso di perniciosi bugs) nel corso dell'elaborazione. E secondo, perche' posso decidere di vedere in modi diversi i dati raccolti, per focalizzare meglio l'oggetto della mia indagine.

Se si tratta di milioni di righe, significa con ogni probabilita' che bisogna conoscere meglio cosa bisogna ottenere. E quindi, bisogna procedere per tentativi agendo sul caso in specie fino a conoscere che cosa vale rappresentare, eliminando il superfluo. Cioe' bisogna avere le idee chiare prima di scrivere il codice, sopratutto quando questo produce milioni di righe di informazioni. Quali di queste sono utili? E quante (quelle utili) possono essere nel caso peggiore?
 
Ultima modifica:
In effetti visualizzare i dati costa parecchio in termini di tempo.
La progress bar ha un costo molto più basso , è un compromesso . È utile per capire che il programma sta funzionando correttamente e non si è impallato Nel caso di grandi elaborazioni
 
Esempio banale
Leggi il file
Lanci la tua funzione
E Ottieni i tuoi valori
Rit=x
Ritmax=y
Incr=z
Pres= j
Poi applichi i tuoi filtri
Se la condizione è rispettata
M+=1
Redim preserve aTemp(m)
aTemp(m)= rit&","&ritmax&","&incr&","&pres
Fine se

Ubound( atemp) sarà la dimensione della matrice.
Se non ti dà errore perché troppo grande
Allora potresti dimensionare la tua matrice
Redim aMat ( ubond( atemp), 3) as variant ( se contiene dati non omogenei.

Scorri a temp
dim av as variant
Av= split( atemp(i),",")
Amat(i,0)=av(0)
Amat(i,1)= av(1)
Eccc.....
Ecco pronta la matrice da ordinare.
Lo split costa meno che il calcolo della funzione
Se invece ridimensionare 4 array diversi costa ancora meno non devi neanche fare lo split li scorri e carichi.

Però su questo sanno dire Rookie e LuigiB
 
Good Sunday ☀🙂
Anche io dimensionerei volentieri la matrice dopo che so il numero di colonne analizzate come indicato da rookie ma come posso fare se la matrice in questione va dichiarata globale prima della funzione che genera le colonne? 😱😵🤔 Per quanto riguarda la soluzione vulcaniana alla mcgiver del figlio segreto di Bill Gates chiedo un code di esempio più dettagliato perché io non ci arrivo... 🤕🥴😬

La soluzione del sergente SLDR l'ho provata dichiarando 100k righe nella matrice globale e cercando poi di visualizzare nella list box solo quelle pari al numero di righe effettivamente sviluppate ma per adesso così la list box ricaricata secondo ordinamento voluto resta vuota... 🥶
 
è proprio sbagliato il concetto , non è che uno produce milioni di righe e poi spera di prendere le migliori ordinandole ...
 
è proprio sbagliato il concetto , non è che uno produce milioni di righe e poi spera di prendere le migliori ordinandole ...

No Luigi non mi riferivo a milioni di righe sviluppate... ma come ho scritto alla sola dichiarazione dello spazio richiesto in matrice tipo

Dim matrice(100000, 6)
 
In pratica o dichiari un aTemp() as string
E poi fai il redim preserve e poi fai lo split della stringa per caricare la tua matrice oppure dichiari 4 vettori
ARit()
ARitMax()
AInc()
APres()
Se la condizione è rispettata
allora M+=1
Redim preserve aRit (m)
arit(m)= rit
Redim preserve aRitMax(m)
Artimax(m) = ritmax
Eccc...
Ma non so quale sia la soluzione più veloce e meno costosa in termini di risorsa per il pc.
Aspettiamo lumi.
Ma sono soluzioni home made
Vediamo come sono quelle pro .
 
la soluzione di legend ha un costo enorme oltre al fatto che con gli array, multidimensionali non funziona , tra l'altro quando si fa un preserve e si prevedono di aggiungere piu righe non è che si incrementa di una sola unità l'array ..cosi uno deve fare il preserve per ogni nuovo valore , una volta superato il limite della dimensione messa all'inizio ,e il preserve è un 'istruzione pesante.
La soluzione potrebbe essere quelal di crearsi un proprio udt , prevedere un array di 100 elementi e durante l'elaborazione alimentare questo array in modo che i valor piu alti si trovino sempre in cima e ordinati dentro questo array , in altre parole bisogna abbandonare i sughi pronti barilla (ordine matrice) e preparare la pietanza da soli ...
 
Luigi ma anche fare il preserve di una stringa costa tanto?
Non immaginavo.
Una volta popolato con 100 elementi la matrice bisogna ordinarla
E a ogni nuovo valore se è maggiore dell ultimo bisogna inserire questo è fare il riordino Dei 100 elementi.?

Grazie LuigiB.
La soluzione migliore è fare un buon filtro alla base., in modo da avere meno ordinamenti da fare.
 
Luigi ma anche fare il preserve di una stringa costa tanto?
Non immaginavo.
Una volta popolato con 100 elementi la matrice bisogna ordinarla
E a ogni nuovo valore se è maggiore dell ultimo bisogna inserire questo è fare il riordino Dei 100 elementi.?

Grazie LuigiB.
La soluzione migliore è fare un buon filtro alla base., in modo da avere meno ordinamenti da fare.
stringhe .. peggio che andar di notte come si dce ...
ad ogni nuovo valore si deve inserire se è il caso questo valore dentro l'array di cui sopra nella giusta posizione facendo shiftare gl ialtri , 100 elementi sono pure troppi .. ne pbastano una ventina ... alal fine delal routine l'array dei risultati è gia ordinato ..
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 23 novembre 2024
    Bari
    33
    80
    86
    52
    25
    Cagliari
    67
    57
    59
    05
    80
    Firenze
    31
    32
    58
    88
    77
    Genova
    40
    39
    23
    36
    81
    Milano
    28
    58
    45
    25
    38
    Napoli
    20
    82
    23
    44
    57
    Palermo
    76
    56
    88
    62
    31
    Roma
    12
    81
    59
    74
    72
    Torino
    46
    53
    72
    45
    23
    Venezia
    04
    12
    42
    64
    20
    Nazionale
    63
    44
    78
    10
    55
    Estrazione Simbolotto
    Torino
    43
    42
    12
    39
    22

Ultimi Messaggi

Indietro
Alto