fabcad Posté(e) le 17 septembre 2009 Posté(e) le 17 septembre 2009 Bonjour,Je me suis remis au LISP et j'ai un souci dans une sous-routine de vérification de mot pour faire sortir son appartenance à une catégorie : voici le début de ma sous-routine : (defun verification_mot (mot_a_verifier /) (setq LISTE_PRENOMS (list "Adam" "Adolphe" "Adrien" "Alain" "Albert" "Alexandre" ...) (setq LISTE_TYPE (list "Allée" "Avenue" "Bosquets" "Boulevard" "Canal" "Carre" "Carrefour" ...) (setq LISTE_ARTICLE (list "d'" "de" "de" "de" "l'" "de" "la" "des" "du" "l'" "la")) (setq LISTE_TITRE (list "Abbé" "Amiral" "Capitaine" "Cardinal" "Chanoine" "Colonel" "Commandant" ...) (setq LISTE_PARTICULE (list "D'" "De" "De" "L'" "De" "La" "Des" "Du" "L'" "La" "Le")) (setq LISTE_TEXTE "et") [i] catégorie à retourner dans la fonction "Maitre"[/i] );fin defun verification_mot - Comment faire pour que le texte à vérifier soit comparé aux éléments de chaque liste et retourne une catégorie si l'existence est vérifiée ?si mot_a_verifier fait partie de la liste des prénoms alors catégorie = prenomsi mot_a_verifier fait partie de la liste des Types de voies alors catégorie = type_voiesi mot_a_verifier fait partie de la liste des Articles alors catégorie = articlesi mot_a_verifier fait partie de la liste des Titres alors catégorie = titresi mot_a_verifier fait partie de la liste des Particules alors catégorie = particulesi mot_a_verifier fait partie de la liste des Textes alors catégorie = textesi mot_a_verifier ne fait partie d'aucune des listes alors catégorie = non_defini Merci pour vos réponses,Fabcad,[Edité le 17/9/2009 par fabcad]
(gile) Posté(e) le 17 septembre 2009 Posté(e) le 17 septembre 2009 Salut, Regarde les fonctions member ou vl-position (cond ((member mot_a_verifier LISTE_PRENOMS) (setq categorie "prenom")) ((member mot_a_verifier LISTE_TYPE) (setq categorie "type_voie")) ;; etc. ) ou (cond ((vl-position mot_a_verifier LISTE_PRENOMS) (setq categorie "prenom")) ((vl-position mot_a_verifier LISTE_TYPE) (setq categorie "type_voie")) ;; etc. ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
fabcad Posté(e) le 17 septembre 2009 Auteur Posté(e) le 17 septembre 2009 Merci Gile ca fonctionne,Juste pour :si mot_a_verifier ne fait partie d'aucune des listes alors catégorie = non_definicomment faire l'otherwise ? (cond ((vl-position mot_a_verifier LISTE_PRENOMS) (setq categorie "prenom"));fin member dans LISTE_PRENOMS ((vl-position mot_a_verifier LISTE_TYPE) (setq categorie "type_voie"));fin member dans LISTE_TYPE ((vl-position mot_a_verifier LISTE_ARTICLE) (setq categorie "article"));fin member dans LISTE_ARTICLE ((vl-position mot_a_verifier LISTE_TITRE) (setq categorie "titre"));fin member dans LISTE_TITRE ((vl-position mot_a_verifier LISTE_PARTICULE) (setq categorie "particule"));fin member dans LISTE_PARTICULE ((vl-position mot_a_verifier LISTE_TEXTE) (setq categorie "texte"));fin member dans LISTE_TEXTE "Otherwise" );fin cond (alert categorie) );fin defun verification_mot
(gile) Posté(e) le 17 septembre 2009 Posté(e) le 17 septembre 2009 Tu peux faire une dernière condition avec T (true : toujours vrai) ou si tu as déclaré localement la variable mot_a_verifier elle restera à nil après le cond et tu testes ensuite si elle est nil ou non. (defun verification_mot (mot_a_verifier / categorie) (cond ((vl-position mot_a_verifier LISTE_PRENOMS) (setq categorie "prenom"));fin member dans LISTE_PRENOMS ((vl-position mot_a_verifier LISTE_TYPE) (setq categorie "type_voie"));fin member dans LISTE_TYPE ((vl-position mot_a_verifier LISTE_ARTICLE) (setq categorie "article"));fin member dans LISTE_ARTICLE ((vl-position mot_a_verifier LISTE_TITRE) (setq categorie "titre"));fin member dans LISTE_TITRE ((vl-position mot_a_verifier LISTE_PARTICULE) (setq categorie "particule"));fin member dans LISTE_PARTICULE ((vl-position mot_a_verifier LISTE_TEXTE) (setq categorie "texte"));fin member dans LISTE_TEXTE (T (setq categorie "Aucune")) );fin cond (alert categorie) );fin defun verification_mot ou (defun verification_mot (mot_a_verifier / categorie) (cond ((vl-position mot_a_verifier LISTE_PRENOMS) (setq categorie "prenom"));fin member dans LISTE_PRENOMS ((vl-position mot_a_verifier LISTE_TYPE) (setq categorie "type_voie"));fin member dans LISTE_TYPE ((vl-position mot_a_verifier LISTE_ARTICLE) (setq categorie "article"));fin member dans LISTE_ARTICLE ((vl-position mot_a_verifier LISTE_TITRE) (setq categorie "titre"));fin member dans LISTE_TITRE ((vl-position mot_a_verifier LISTE_PARTICULE) (setq categorie "particule"));fin member dans LISTE_PARTICULE ((vl-position mot_a_verifier LISTE_TEXTE) (setq categorie "texte"));fin member dans LISTE_TEXTE );fin cond (if categorie (alert categorie) (alert "Aucune catégorie") ); fin de if );fin defun verification_mot Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
fabcad Posté(e) le 17 septembre 2009 Auteur Posté(e) le 17 septembre 2009 Alors tu m'epates Gile, Merci beaucoup, je ne voyais pas du tout comment faire cette opération de controle, A+
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant