GETKWORD

GETKWORD


Vérifier les entrées utilisateur


Dans bien des programmes l'utilisateur va devoir saisir des données et il est primordial de s'assurer que le "format", le "type" de ces données est en corrélation avec ce qu'attend le programme pour travailler, à savoir, l'utilisateur a le choix entre oui et non, cas simple s'il en est, et on va vérifier s'il a répondu O ou Oui en toutes lettres ou _Yes parce qu'il a cru bon de répondre en anglais et ainsi de suite pour les différentes hypothèses ...

La fonction (getkword)  va vérifier si la saisie correspond à certains mots clés, si ce n'est pas le cas AutoLISP relance la demande de saisie après un message d'erreur :
"Choix de l'option incorrect."

(getkword)  retourne le mot clé correspondant à l'entrée de l'utilisateur en tant que chaîne de caractères (string).

Syntaxe : (getkword [message])
Arguments

 

message (optionnel)
-  une chaîne de caractère qui apparaîtra sur la ligne de commande,
-  si message est omis la ligne de commande sera vide.
Valeur renvoyée le mot clé si la saisie est correcte

nil en cas de réponse nulle,
comme un appui sur la touche Entrée ou Esc

 

Voir la fonction (initget) qui est utilisée conjointement.

Les mots-clés sont définis avant l'appel à (getkword) à l'aide de la fonction (initget)

L'argument "message" correspond à la chaîne qui sera affichée comme message.
La fonction (getkword) renvoie le "motclé" saisi par l'utilisateur sous forme de chaîne de caractères (string).

AutoCAD redemande la saisie si la valeur fournie n'est pas un mot-clé connu.
Si aucun mot-clé n'est entré (appui sur Enter), (getkword) renvoie nil (si l'entrée nulle est autorisée par initget).
La fonction renvoie également (nil) si elle n'est pas précédée d'au moins un appel à (initget) à l'origine de la création d'un ou plusieurs mots-clés.

Exemples :

Initialisation des mots clés :

(initget "Oui" "Non")

Syntaxe :

(setq rep (getkword "Certain  ? (Oui ou Non "))

Valeurs suivant les réponses :

Réponse   "o"             valeur de rep "oui"
Réponse   "n"             valeur de rep "non"
Réponse   "oui"          valeur de rep "oui"
Réponse   "non"         valeur de rep "non"
validation à vide    valeur de rep nil


Il est possible de ne pas répondre au clavier mais de cliquer la réponse dans la ligne de commande


Valeur par défaut :

Si on souhaite ne pas faire taper à l'utilisateur une valeur, dans le choix proposé, pour qu'il n'ait qu'à appuyer sur ENTER pour la choisir  on va procéder de cette manière en respectant les habitudes d'AutoCAD de mettre entre chevrons la valeur qui sera prise par défaut si l'utilisateur appuie sur ENTER.

En image :

En texte copiable :

1
2
3
4
5
6
7
8
(initget "Rectangle Carré Triangle Cercle")
(setq Choix_Getkword (getkword "\nQuelle figure dessiner ? [Rectangle/Carré/Triangle/Cercle] <Rectangle>: "))
(cond
   ((= Choix_Getkword "Carré") (alert "Carré"))
   ((= Choix_Getkword "Triangle") (alert "Triangle"))
   ((= Choix_Getkword "Cercle") (alert "Cercle"))
   (T (alert "Rectangle"))
)

En tapant ENTER c'est Rectangle qui sera choisi


Haut de page

revenir au menu ENTRÉES UTILISATEUR


6 décembre 2017,
mise à jour le 09 janvier 2018,
mise à jour le 10 octobre 2018