Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD11] Il essaie de lire mon_tableau[0] quand je lui demande mon_tableau[1]

1 réponse
Avatar
Loko
Bonjour

Mon tableau de cha=EEnes est rempli comme ceci :
--------------
gtabCHIFFRE est un tableau de 19 cha=EEnes
gtabCHIFFRE[1] =3D "un"
gtabCHIFFRE[2] =3D "deux"
gtabCHIFFRE[3] =3D "trois"
gtabCHIFFRE[4] =3D "quatre"
gtabCHIFFRE[5]=3D"cinq"
gtabCHIFFRE[6]=3D"six"
gtabCHIFFRE[7]=3D"sept"
gtabCHIFFRE[8]=3D"huit"
gtabCHIFFRE[9]=3D"neuf"
gtabCHIFFRE[10]=3D"dix"
gtabCHIFFRE[11]=3D"onze"
gtabCHIFFRE[12]=3D"douze"
gtabCHIFFRE[13]=3D"treize"
gtabCHIFFRE[14]=3D"quatorze"
gtabCHIFFRE[15]=3D"quinze"
gtabCHIFFRE[16]=3D"seize"
gtabCHIFFRE[17]=3D"dix-sept"
gtabCHIFFRE[18]=3D"dix-huit"
gtabCHIFFRE[19]=3D"dix-neuf"
-----------------

Lorsque je fais cela :
--------------
IF ($L_N_VARNUMU1$ <> 0 ) THEN
Trace($L_N_VARNUMU1$)
$L_C_VARLETLOC$ +=3D gtabCHIFFRE[$L_N_VARNUMU1$]
END
----------

bizzarement quand ma variable $L_N_VARNUMU1$ vaut entre 1 et 4 inclus
il essaie de me lire l'indice n-1 (donc ca plante si ma variable vaut
1 car il essaie de lire l'indice 0, et ca me retourne une valeur
fausse de 2 =E0 4).
Par contre si ma variable est >=3D5 alors pas de probl=E8me il lit la
bonne valeur.

C'est tr=E8s =E9trange, qqun a t-il une explication svp ?

Merci bcp
Loko

1 réponse

Avatar
Pascal F
Loko a exprimé avec précision :
Bonjour

Mon tableau de chaînes est rempli comme ceci :
--------------
gtabCHIFFRE est un tableau de 19 chaînes
gtabCHIFFRE[1] = "un"
gtabCHIFFRE[2] = "deux"
gtabCHIFFRE[3] = "trois"
gtabCHIFFRE[4] = "quatre"
gtabCHIFFRE[5]="cinq"
gtabCHIFFRE[6]="six"
gtabCHIFFRE[7]="sept"
gtabCHIFFRE[8]="huit"
gtabCHIFFRE[9]="neuf"
gtabCHIFFRE[10]="dix"
gtabCHIFFRE[11]="onze"
gtabCHIFFRE[12]="douze"
gtabCHIFFRE[13]="treize"
gtabCHIFFRE[14]="quatorze"
gtabCHIFFRE[15]="quinze"
gtabCHIFFRE[16]="seize"
gtabCHIFFRE[17]="dix-sept"
gtabCHIFFRE[18]="dix-huit"
gtabCHIFFRE[19]="dix-neuf"
-----------------

Lorsque je fais cela :
--------------
IF ($L_N_VARNUMU1$ <> 0 ) THEN
Trace($L_N_VARNUMU1$)
$L_C_VARLETLOC$ += gtabCHIFFRE[$L_N_VARNUMU1$]
END
----------

bizzarement quand ma variable $L_N_VARNUMU1$ vaut entre 1 et 4 inclus
il essaie de me lire l'indice n-1 (donc ca plante si ma variable vaut
1 car il essaie de lire l'indice 0, et ca me retourne une valeur
fausse de 2 à 4).
Par contre si ma variable est >=5 alors pas de problème il lit la
bonne valeur.

C'est très étrange, qqun a t-il une explication svp ?

Merci bcp
Loko



la variable est de quel type? ne serait_ce pas une chaine. D'autre part plutot que de vérifier si la variable est différente de
0, je préfère perso tester si elle est >0 car sinon en cas de valeur négative, une erreur est générée.

--
Pascal

Ne garder que le prénom pour me joindre