Forums - La Blocothèque - condition avec variable

Ce sujet a 7 réponses, 3 participants et a été mis à jour par   Yannick Audéoud, il y a 7 mois et 1 semaine. This post has been viewed 239 times

  • Damien Duthoy  | Posté le 31 juillet 2019 à 17 h 40 min

    Bonjour,

    J’aimerais comparer le résultat au format texte d’un bloc formulaire variable avec la valeur d’une variable composée de texte.

    Pour expliquer au mieux,

    J’ai une variable indice1 « 3pHyeU5N3 »
    le bloc formulaire renvoit la variable codeindiceentré
    un bloc condition compare les 2 résultats : codeindiceentré == indice1 –> cela ne fonctionne pas.
    j’ai donc tenté d’affecter une nouvelle variable indicevalidé : contains(codeindiceentré, indice1) pour renvoyer la valeur true, cela ne fonctionne pas non plus.

    Quelle solution existe-t-il pour que vts compare la valeur de 2 variables texte ?

    Merci d’avance.
    Damien

    Nicolas ROSSARD  | Posté le 1 août 2019 à 20 h 24 min

    Bonjour Damien,

    Tel que tu le décris, VTS est censé bien faire cette comparaison.

    As-tu fais attention de bien gérer la casse ?
    Je te conseille de faire un toLower(maVariable) sur tes 2 variables juste avant de les comparer.

    Au pire, peux-tu me partager un bout de ton projet pour que je puisse voir ce qui cloche ?

    Bien à toi,

    Damien Duthoy  | Posté le 2 août 2019 à 12 h 10 min

    Bonjour Nicolas,

    J’ai effectivement pensé au toLower mais il s’agit ici de mots de passes donc les majuscules sont importantes. Au pire si cela fonctionne je ferais ainsi, mais ce que je ne comprend pas c’est qu’en utilisant le bloc conditions pour comparer la valeur d’une variable avec un texte entre guillemets cela fonctionne parfaitement, ex : indiceentré == « maison » (comme pour pythagore dans lindebrock.

    En revanche, dès que j’essaie : indiceentré == indice1 (ce qui me permet d’affecter aléatoirement la valeur de indice1 en fonction de la salle de jeu), cela ne fonctionne pas.

    As-tu une explication à cela ?

    Des que je peux je t’envoie mon graphe.
    Ps: merci pour les réponses à mes 3 posts.
    Damien

    Yannick Audéoud  | Posté le 2 août 2019 à 16 h 47 min

    Bonjour,

    La façon de faire que vous décrivez est correcte et devrait en effet fonctionner.
    Par exemple, le graphe suivant affiche bien le message « OK » lorsque l’utilisateur écrit 3pHyeU5N3 dans le formulaire.

    Graphe VTS

    Voici quelques questions pour tenter d’identifier l’origine du problème :
    – Que se passe-t-il lorsque vous dites que « ça ne fonctionne pas » ? La condition donne false à tous les coups ? Ou bien la condition fait une erreur ? Si ça fait une erreur, quel est le message d’erreur ?
    – La variable indice1 est-elle bien créée avant le bloc Formulaire ?
    – La variable indice1 est-elle bien créée en utilisant les guillemets par défaut de la touche 3 comme celui-ci ", et pas des guillemets formatés qui auraient pu être copié-collé depuis Word par exemple, comme celui-ci : « ?
    – Est-ce que la variable codeindiceentré est bien utilisée avec la même orthographe dans le bloc Formulaire et dans le bloc Conditions ? Par exemple, l’un des deux e successifs pourrait avoir été oublié dans la condition, ce qui donnerait : codeindicentré
    – Le bloc Formulaire est-il bien configuré dans un mode texte ? (Texte, Texte multi-lignes ou Mot de passe)
    – Si vous ouvrez la fenêtre Variables (bouton X en haut à droite pendant la preview) après l’exécution du bloc Conditions, voyez-vous bien la valeur "vts" (avec les guillemets) pour les deux variables indice1 et codeindiceentré ?

    Cordialement,
    Yannick

    Damien Duthoy  | Posté le 2 août 2019 à 22 h 00 min

    Bonjour Yannick, merci pour cette réponse,

    J’allais commencer en répondant à toutes les questions, mais après avoir fait des essais je vous propose un rapport de bug.
    Explications :
    Ayant 40 codes différents à entrer dans le scénario, j’ai d’abord généré puis copié les codes depuis un tableur excel pour les mettre ensuite dans VTS. Une fois copiés, j’ai manuellement ajouté les guillemets «  » (ceux du 3).

    Après analyse de mon graphe qui ne comporte pas d’erreur de « programmation » selon vous, j’ai fais plusieurs tests.

    Il semble que lorsque les codes ont été copiés depuis excel dans VTS et malgré l’ajout manuel des «  », le code entré manuellement ne correspond jamais (le bloc condition renvoi false) ET ce, même si on fait un copié collé du code depuis la fenêtre « état des variables ».

    En revanche, si je retape manuellement le code dans le bloc variables, le copié collé PLUS l’entrée manuelle du code fonctionnent lorsqu’on les rentrent dans le bloc formulaire variable.

    Serait-il possible de paramétrer VTS pour que les copiés-collés d’autres applications utilisent OBLIGATOIREMENT les normes de police de VTS. Cela éviterai ainsi ce genre de mésaventure à s’en arracher les cheveux 🙂

    Je sais maintenant que le problème ne venait pas de la programmation mais d’ailleurs… cela me servira pour la prochaine fois. Merci pour vos réponses, et en espérant que ce retour de « bug » vous permettra de rendre encore et toujours meilleur ce magnifique outil pédagogique.

    Damien Duthoy

    Yannick Audéoud  | Posté le 3 août 2019 à 14 h 24 min

    Bonjour,

    Merci pour votre retour détaillé !
    En effet je n’avais pas pensé à ce cas là. Nous avions déjà remarqué qu’un copier-coller depuis Excel pouvait parfois ajouter des caractères invisibles supplémentaires à un texte collé, ce qui le rend « différent » du texte que l’on voulait vraiment coller, ce qui fera échouer toute comparaison avec un texte équivalent tapé à la main dans un formulaire. Ce problème est bien noté et devrait être corrigé dans une future version.

    D’ici là, pour éviter de ré-écrire tous vos codes à la main, vous devriez tout de même pouvoir copier-coller vos codes depuis Excel si vous sélectionnez directement le texte qui se trouve dans la cellule (et pas la cellule elle-même). Il faut donc entrer en mode « édition » de la cellule pour pouvoir surligner le texte et le copier.

    Cordialement,
    Yannick

    Damien Duthoy  | Posté le 3 août 2019 à 20 h 37 min

    Bonjour,

    Dommage, j’ai corrigé tous les codes un par un juste après avoir posté.
    Mais je le saurais pour la prochaine fois.
    A voir si c’est pareil pour word.

    Merci pour vos réponses.
    Damien

    Yannick Audéoud  | Posté le 30 août 2019 à 15 h 36 min

    Bonjour,

    Pour information, la nouvelle version 4.0.5 de VTS Editor sortie hier (le 29/08/2019) corrige le problème de copier-coller depuis une cellule Excel ! Cela devrait donc vous faciliter donc la vie pour des cas similaires à l’avenir.

    Cordialement,