Azzerare tutti gli elementi di un vettore di tipo numerico

Da Gambas-it.org - Wikipedia.

Per azzerare tutti gli elementi di una variabile vettoriale (array) di un qualsiasi tipo numerico, è possibile utilizzare almeno le modalità che di seguito si espongono, nelle quali si avrà come obiettivo l'azzeramento di un vettore di tipo Byte.


Modalità con il ciclo For...Next

Public Sub Button1_Click()

  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte

   
   For b = 0 To bb.Max
 
     bb[b] = 0

   Next

End


Modalità con un ciclo While...Wend

 Public Sub Button1_Click()

  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte

   
   While b < 5   ' Il ciclo continua finché "b" è minore di 5
 
     bb[b] = 0

     Inc b

   Wend

End


Modalità con un ciclo Do...Loop Until

 Public Sub Button1_Click()

  Dim bb As Byte[] = [1, 2, 3, 4, 5]
  Dim b As Byte

   
   Do
 
     bb[b] = 0

     Inc b

' Il ciclo continua finché "b" non è uguale a 5:
   Loop Until b = 5

End


Modalità con la funzione esterna di C: memset ()

E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante Extern, sia la libreria C, nella quale essa è contenuta.

Private Extern memset(dest As Byte[], c As Byte, count As Byte) In "libc:6"


Public Sub Form_Open()

 Dim bb As Byte[] = [1, 2, 3, 4, 5]
 Dim b As Byte
 

' La funzione "memset" carica un valore in tutti i byte di un'area di memoria:
   memset(bb, 0, bb.Count)
 
' Verifichiamo in console il rusultato:
   For b = 0 To bb.Max
     Print bb[b]
   Next

End