Utiliser la correspondance de pattes dans la boucleSalut,
J'essaie d'écrire un programme pour prendre une chaîne d'entrée, trouver un mot clé dans la chaîne complète et créer une nouvelle colonne avec juste l'abréviation. Le script doit parcourir toutes les lignes d'une seule colonne. Mon code génère une erreur et je pense que c'est la syntaxe de ma boucle, mais je n'arrive pas à comprendre où se trouve l'erreur. Voici ce que j'ai
For Each Row(
:prodFam = If(
Pat Match(:prodGroup, "aleutian"),
"ALEUTIAN",
Pat Match(:prodGroup, "ari"),
"ARI",
Pat Match(:prodGroup, "blue"),
"BLUE RIDGE",
et la boucle continue. Toute aide est grandement appréciée, merci!
Re: Utiliser Pat Match dans LoopComme vous le dites, la fonction Contient renvoie une valeur numérique (la position dans laquelle l'élément est contenu). Cependant, vous pouvez traiter la valeur comme boolean: 0 = false, sinon true, vous pouvez donc écrire du code qui traite la fonction Contains comme boolean:
Si (contient (...),
// faire quelque chose
)
Re: Utiliser Pat Match dans LoopVous avez besoin d’une réponse booléenne pour votre Si() fonctionner pour travailler. C’est ainsi que le résultat de Contient () sera interprété comme je l'ai déjà expliqué.
Re: Utiliser Pat Match dans LoopLe problème avec l’utilisation de la fonction Contains () est qu’elle renvoie une valeur numérique lorsque j’ai vraiment besoin d’une valeur booléenne vraie ou fausse. Je suppose que je pourrais utiliser la valeur renvoyée pour indexer une sous-chaîne, mais au final, cela semble être plus de lignes de code pour quelque chose qui pourrait être fait en utilisant pat match, n'est ce pas? Merci pour la réponse!
Re: Utiliser Pat Match dans LoopTout d'abord, si ce code ne fait pas partie d'un script plus volumineux, vous pouvez entrer une formule de colonne. L'argument dans le Pour chaque rangée () la fonction est la même que la formule de la colonne.
Deuxièmement, bien que les modèles de chaînes de caractères soient très utiles, je pense que vous pouvez utiliser Contient (chaîne de test, chaîne cible) dans ce cas. Vous ne recherchez pas un motif mais une chaîne littérale (mot). Contient () renvoyer l'emplacement si trouvé ou zéro si non trouvé. JMP interprète zéro comme faux et non nul comme vrai. Votre logique implémentée avec le Si() les fonctions sont telles quelles.
Re: Utiliser Pat Match dans LoopJ'ai donc compris qu'une fois que vous créez une référence à une colonne, vous n'utilisez plus les deux points pour indiquer qu'il s'agit d'un nom de colonne. Cependant, mon script s'exécute maintenant sans remplir la table avec les abréviations. Est-ce que je manque encore quelque chose? Merci!