French indexage de données

fgh3966

Active Member
Licensed User
Bonsoir
Je me demande si avec ce code ci dessous le tableau de 256 var est mis a 0 ?
Je me demande aussi si la ligne : var(index) = 0 est valide car c'est le point qui m'intéresse le plus.

index:
Private Sub raz256var
    var() as byte         ' tableau de 256 octets
    For index = 0 To 255 'incrémentation de l'index
        var(index) = 0   'chaque var du tableau est mis à 0
    Next                 'rebouclage
End Sub

Merci d'avance.
 

drgottjr

Expert
Licensed User
Longtime User
ceci ne marche pas:
B4X:
Private Sub raz256var
    var() as byte         ' tableau de 256 octets
    For index = 0 To 255 'incrémentation de l'index
        var(index) = 0   'chaque var du tableau est mis à 0
    Next                 'rebouclage
End Sub


ceci marche:
B4X:
Private Sub raz256var
    dim var(256) as byte         ' tableau de 256 octets
    For index = 0 To 255 'incrémentation de l'index
        var(index) = 0   'chaque var du tableau est mis à 0
    Next                 'rebouclage
End Sub

ceci marche:
B4X:
Private Sub raz256var
    var(256) as byte         ' tableau de 256 octets
    ' !!!!!!!!!!!!!   le simple fait d'avoir declare le tableau met la valeur de chaque element a 0  !!!!!!!!!!!!!!!!!!!!!!!!
    ' -----------------------------------------------------------------------------------------------------------------

   'a savoir:

    For index = 0 To 255 'incrémentation de l'index
        log(index & " " & var(index))      'chaque var du tableau est mis à 0 sans que je ne fasse rien
    Next                 'rebouclage
End Sub
 

fgh3966

Active Member
Licensed User
Bonjour et merci

en effet j'ai oublié le mot "dim" J'ai regardé le tuto de B4X chapitre variables.
si j'écris :
dim var() as byte, est ce que B4A déclare un nombre indéfini de variables ?
Et donc le code ci dessous fonctionnerait ?

dim var() as byte:
Private Sub raz256var
    dim var() as byte    ' tableau de 256 octets
    For index = 0 To 255 'incrémentation de l'index
        var(index) = 0   'chaque var du tableau est mis à 0
    Next                 'rebouclage
End Sub
 

klaus

Expert
Licensed User
Longtime User
dim var() as byte, est ce que B4A déclare un nombre indéfini de variables ?
Non.
Il est obligatoire de donner le nombre d'éléments.
Dans quelques cas, si une fonction retourne un tableau, on peut le déclarer sans le nombre d'éléments .
Dans ce cas le nombre d'éléments est défini dans la fonction.
Exemple:
B4X:
Private Mots() As String
Private Phrase As String
Phrase = "Ceci est une phrase"
Mots = Regex.Split(" ", Phrase)
Dans ce cas le tableau Mots contient 4 éléments.

Tu peux vérifier le nombre d'éléments dans un tableau avec:
var.Length

Dans ton cas avec:
B4X:
    Private var() As Byte
    Log(var.Length)
Le Log retourne 0, donc aucun élément.
 
Top