Bug sur l'indexage d'un tableau lors d'une lecture d'une valeur du tableau

L'utilisation et la création des scripts.
Répondre
Marc DELDEM
Messages : 1049
Enregistré le : 20 juin 2009, 01:01

Bug sur l'indexage d'un tableau lors d'une lecture d'une valeur du tableau

Message par Marc DELDEM » 07 nov. 2020, 21:43

Salut,

Je suis tombé sur un truc bien merdique. La lecture d'une valeur d'un tableau en faisant de l'arithmétique dans l'index génère une erreur.

Voici un script pour rejouer le problème.

Code : Tout sélectionner

idx=1
Value[idx]$="Hello"
Value[idx+1]$="World"

PRINT Value[idx]$
PRINT Value[idx+1]$
L'erreur:
Le script s'est arrêté à cause d'une erreur fatale : Ligne : @ 6 -> "PRINT Value[idx+1]$ ERREUR : Tableau mal indexé !
Pour que cela fonctionne, il ne faut pas de calcul dans les crochets du tableau lors d'une lecture d'une valeur.
Alors que pour l'affectation, cela fonctionne.

Code : Tout sélectionner

idx=1
Value[idx]$="Hello"
Value[idx+1]$="World"

PRINT Value[idx]$
idx=idx+1
PRINT Value[idx]$
Marc

Cyril Cavadore
Messages : 3955
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: Bug sur l'indexage d'un tableau lors d'une lecture d'une valeur du tableau

Message par Cyril Cavadore » 08 nov. 2020, 01:16

Marc,
Y a des tas de choses comme ca qui sont "moches" mais contournables comme tu l'as fait.
L'arithmétique dans les tableaux n'est pas géré dans ce langage de script.
C'est pour cela qu'on essaie de voir pour un moteur de langage tres évolué comme le phyton.
Mais y a un tres gros travail pour faire cette migration.
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403

Marc DELDEM
Messages : 1049
Enregistré le : 20 juin 2009, 01:01

Re: Bug sur l'indexage d'un tableau lors d'une lecture d'une valeur du tableau

Message par Marc DELDEM » 08 nov. 2020, 09:56

Salut Cyril,

Oui pas de problème, ce qui est déroutant dans ce cas, c'est que dans l'affectation cela fonctionne (tableau[Idx+1]=valeur) mais pas dans la lecture.
Heureusement le message d'erreur de Prism est bien clair et on peut facilement contourner le problème.

Marc

Répondre