Novità

SpazioScript (per LuigiB o per chi può aiutarmi)

quindi il meccanismo con il quale preleviamo i numeri da aRighe per scriverli in aColonna ti è chiaro.

Ok il motivo per cui non sviluppa altre colonne è perche non abbiamo gestito tutti i registri ma solo l'ultimo.


a questo punto dobbiamo fare le opportune modifiche per far si che tutti i registr ivengano gestiti.

abbiamo visto che dobbiamo provare ad incrementare l'ultimo registro , se questo h raggiunto il limite dobbiamo salire al registro precedente.

quindi in GetColonne inserisci una variabile che si chiamerà nPuntatore.

nPuntatore subito deve essere valorizzato con il valore della classe , fallo e posta solo la routine getColonne
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nClasse) + 1
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
ok abbiamo creato la variabie nPuntatore e l'abbiamo valorizzata pari alla classe perche la useremo come indice dell'array aPuntatore.
Questa variabile nPuntatore verra decrementata quando il valore aPuntatore((nPuntatore)+1 diventa > nQNumPerRiga e serve appunto per salire al registro precedente.


tu gi a fai

ValIncr = aPuntatore(nClasse) + 1

nclasse va sostituito con nPuntatore , subito dopo devi inserire un ciclo Do While che decrementa nPuntatore finche ValIncr è maggiore di nQNumPerRiga , naturalmente dentro il ciclo devi ricalcolare ValIncr.

vai procedi
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nPuntatore) = ValIncr
         For k = 1 To nPuntatore
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
         Do While ValIncr > nQNumPerRiga
            ValIncr = aPuntatore(nPuntatore) - 1
            aPuntatore(nPuntatore) = ValIncr
            Loop
         End If
   End Function
 
male , io ti ho chiesto di fare un ciclo do subito dopo
ValIncr = aPuntatore(nPuntatore) + 1

chi ti ha detto di metterlo dentro il caso False ? levalo e risposta ... anche perche è sbagliato ma te lo diro dopo
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga
         ValIncr = aPuntatore(nPuntatore) - 1
         aPuntatore(nPuntatore) = ValIncr
         If ValIncr <= nQNumPerRiga Then
            GetColonna = True
            aPuntatore(nPuntatore) = ValIncr
            For k = 1 To nPuntatore
               aColonna(k) = aRighe(k,aPuntatore(k))
            Next
         ElseIf ValIncr > nQNumPerRiga Then
            GetColonna = False
         End If
      Loop
   End Function
 
mannaggia ma me lo fai apposta ? riparti da qui

ripeto
io ti ho chiesto di fare un ciclo do subito dopo
ValIncr = aPuntatore(nPuntatore) + 1


il resto lascialo cosi com 'è l a chiusura del do va fatta prima dell'if .. ... non devi toccare niente li



Codice:
Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nClasse) + 1







      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
Ultima modifica:
Codice:
Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga

      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
    
   End Function
 
Codice:
Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga

      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
    
   End Function
 
nPuntatore serve per salire al registro precedente , parte da nClasse , se il valore incrementato supera il limite bisogna salire (in verità scendere ma essendo la colonna in verticale partendo dall'ultimo saliamo anche se l'indice scende) di registro e nPuntatore si decrementa senno cosa lo abbiamo valorizzato a fare al valore di nClasse ?

dentro al do devi
- decrementare nPuntatore
- ricalcolare ValIncr

procedi ...
 
Ultima modifica:
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga
         nPuntatore = nPuntatore - 1
         ValIncr = nPuntatore
      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga
         nPuntatore = nPuntatore - 1
         ValIncr = aPuntatore(nPuntatore) + 1
      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
ok ora rispondi ad una domanda , a forza di decrementare nPuntatore che cosa potrebbe succedere ? Considera che il nostro array dei registri va da 1 alla classe usata
 
bravo , ogni tanto mi fai risalire il morale ...

quindi prima di
ValIncr = aPuntatore(nPuntatore) + 1
dato che nPuntatore potrebbe valere 0 dobbiamo uscire dal ciclo do nel caso .. come si fa ?
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 07 novembre 2025
    Bari
    87
    44
    86
    59
    51
    Cagliari
    85
    41
    53
    76
    18
    Firenze
    24
    90
    51
    89
    57
    Genova
    04
    39
    77
    13
    23
    Milano
    86
    81
    49
    20
    85
    Napoli
    23
    75
    07
    40
    79
    Palermo
    26
    37
    32
    08
    64
    Roma
    87
    05
    37
    03
    85
    Torino
    66
    16
    28
    09
    37
    Venezia
    30
    73
    32
    49
    26
    Nazionale
    76
    68
    25
    01
    62
    Estrazione Simbolotto
    Torino
    27
    21
    30
    20
    07
Indietro
Alto