lotto_tom75;n2135351 ha scritto:Si le ho capite. Grazie.
Ad ogni modo mi sono accorto di questo "incongruenza operativa"... :
Se lascio visualizzare tutti i risultati di una ricerca o scelgo l'opzione mostra i primi 100 richiesta alla fine dell'elaborazione se i risultati superano questa cifra... tutto ok... mi mostra i risultati voluti secondo l'ordinamento per FQ scelto... (sia esso crescente o decrescente) mentre... se imposto come numero di risultati desiderati una qualsiasi cifra (es. 1) mi mostra sempre in ordine decrescente come se la scelta di ordinamento in questo caso non la sentisse...
Es. "figurativo" per cercare di spiegarmi meglio...
se per analizzare tutte le coppie x E imposto ad esempio
e scelgo ordinamento per freq crescente (opzioni da input 2,1)Codice:ReDim aCombMigliori(4005,4)
Tutto ok... Perfetto la matrice è dimensionata ( con ReDim ) per contenere 4005 righe e 4 colonne quindi ti inserisce tutte le 4005 coppie di ambi
E in output ho le 4005 coppie mostrate in ordine crescente dall'alto verso il basso... corretto
Ma se imposto... un valore nettamente inferiore al numero integrale di combinazioni generate... (es. 1)
questo valore ti ridimensiona la matrice ad 1 riga e 4 colonne per cui nell'usarla con il ciclo For k = 1 To UBound(aCombMigliori) riga 48, tu avrai solo 1 riga che è quella che poi viene riportata in tabella ed in questo specifico caso, non avresti nulla da ordinare se non la sola riga (1). Tieni presente che l'effettivo ordinamento della matrice che fa il vbscript è di tipo decrescente e ciò viene fatto nella memoria del pcCodice:[U]ReDim[/U] aCombMigliori(1,4)
Il costrutto ha la specifica di colonna da ordinare nella Function ScegliValoreDaAnalizzare(sValore) in fase di input con la richiesta a scroll.
Spaziometria nel creare la tabella prima di scriverla in output con CreaTabella o modificarla sulla base dei parametri di questo comando (CreaTabelle) ha già quindi questo input di defoult,per questo l'ordinamento se imposti un valore di righe nel ReDim aCombMigliori(.. ,4) maggiore di 1, in output, noterai che l'ordinamento funziona.
Nello specifico di questo costrutto, Sub AnalisiComb oltre a creare la statistica, riposiziona i valori mettendli in ordine decrescente.
Allora lo script sembra non sentire minimamente l'ordinamento desiderato immesso come input...
E alla fine dell'operazione mi mostra soltanto il valore con FQ massima anzichè quello deisderato a fq min.
Why?
Ps: Il pezzo di codice che mi risulta ancora piuttosto "incomprensibile" e dal quale credo dipenda "l'incongruenza" riportata sopra è questo....
Codice:For k = 1 To UBound(aCombMig)[COLOR=#FF0000] ' dal 1a all'ultimo valore della array aComb[/COLOR] If Valore >= aCombMig(k,0) Then [COLOR=#FF0000]' se Valore (freq,rit o ritmax)trovato nella array aCombMig e >= al valore della riga k,colonna 0 che sta leggendo[/COLOR] For j = UBound(aCombMig) To(k + 1) Step - 1 aCombMig(j,0) = aCombMig(j - 1,0) aCombMig(j,1) = aCombMig(j - 1,1) aCombMig(j,2) = aCombMig(j - 1,2) aCombMig(j,3) = aCombMig(j - 1,3) aCombMig(j,4) = aCombMig(j - 1,4) Next [COLOR=#FF0000] ' le righe presenti successive a quella in analisi scalano in giù di 1 posto portando sempre in alto il valore con freq/rit/ritMax in prima posizione Lascio a te l'onere di correggere questa impostazione. :mad: :mad: :mad: :mad:[/COLOR] aCombMig(k,0) = Valore aCombMig(k,1) = Freq aCombMig(k,2) = Rit aCombMig(k,3) = RitMax aCombMig(k,4) = StringaNumeri(aNum) Exit For
SALUTI MAIUSCOLI