Donnez vie à vos documents numériques !
 

Répondre à : Raccourcir une condition

abracadabraPDF Forums PDF – Général Raccourcir une condition Répondre à : Raccourcir une condition

#73554
bebarth
Maître des clés

bonjour,

Bonjour, pas testé cette dernière version mais la précédente marchait bien il me semble

Il fonctionne mais également pour des réponses incorrectes. Ce script vérifie que les 2 nombres vC2 et vC3 sont présents et qu’il y a un signe de multiplication (x ou *) entre 2 nombres. Mais si par exemple la réponse correcte est 3×5, il valide également 35 x 11 car il y a bien un 3, un 5 et un signe entre 2 nombres…

Sinon, je reconnais que je ne comprend pas cette ligne : var RepUser2=this.getField("RepUser2").valueAsString.replace(/\s+/g,"").replace(/[x]/,"*").split("*");

Ici la variable RepUser2 va être transformée en une table de 1 ou 2 cellules selon la réponse (un nombre ou une opération).
replace(/\s+/g,"") On supprime tous les espaces.
replace(/[x]/,"*") On remplace l’éventuel signe de multiplication “x” en “*”.
split("*") On transforme la chaine de caractères en table avec “*” comme séparateur de cellules.

Et celle-ci : if (RepUser2.length==2 && ((vC2==RepUser2[0] && vC3==RepUser2[1]) || (vC2==RepUser2[1] && vC3==RepUser2[0]))) OK++;

if (RepUser2.length==2... Si la table à 2 valeurs c’est que le résultat est une opération (si elle en a qu’une c’est le résultat de l’opération)
&& ((vC2==RepUser2[0] && vC3==RepUser2[1]) vC2) est égale à la première cellule de ta table et vC3 à la seconde…
|| (vC2==RepUser2[1] && vC3==RepUser2[0])) ou l’inverse…
) OK++; la variable “OK” (initialement 0) est incrémentée.

J’ai un autre souci avec ce fichier…

Je regarde plus tard !

@+
😎