GGB Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Bonjour, je suis en étudiants en Génie des Systèmes Informatiques mention Informatique Industrielle option CAD DAO FAO.Pour notre projet de fin d'année nous travaillons sur un programme lisp permettant de dessiner les vues de face, de coupe et de perspective d'une cage d'armatures pour une poutre, poteau et semelle pour cela je dois vérifier que les valeurs que l'utilisateur rentre sois un réel Comment puis-je faire?Je vous joint le morceau de programme le plus approchant que j'ai réussi à faire pour avoir ce résultat. mes variables la3 H3 H3p lo3 sont les chaines de caractéres que je reprend des l'edit_box(setq l (list "la3" "H3" "H3p" "lo3")) (foreach v l (setq lascii (vl-string->list (get_tile v))) (foreach n lascii (if (not (or (and (>= n 48) (<= n 57)) (= n 46))) (set_tile "error" "erreur saisie") (done_dialog 15) ) ) ) merci d'avanceCoordialement
Invité Patrick Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Utilise la fonction (type) qui renverra REAL si l'argument est un réel.
Patrick_35 Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Salut, Il y a aussi la fonction distof qui renverra nil si ce n'est pas une chaine numérique @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Tramber Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 Je ne comprends pas le code (je cherche pas, remarquez), mais pourquoi ne pas vérouiller l'entrée avec GETREAL. Ou je n'ai rien compris, c'est possible :P Au fait GGB, tu n'es pas à l'université de Calais, par hasard ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 12 mai 2004 Posté(e) le 12 mai 2004 je salue tout ce beau mondeet j'arrive avec ma solution à deux balles,mais l'ancêtre est un habitué,et il sait qu'en info, si la porte est fermée, entre par la fenêtre ;) tout çà pour dire que si tu entres un ENTIERet que tu le multiplie par 1.0 (réel)sa valeur ne change pas, MAIS LE TYPE SI.CQFD.amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Salut Tramber La valeur retournée par un edit_box est en alphanumérique (c'est du dcl) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 hello Patrick du 35pour guider notre ami étudiant,on lui dit qu'il utilise ATOFallez, on lui ditciao Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Salut, didier, oh toi l'ancêtre de l'info http://smileys.smileycentral.com/cat/4/4_17_209.gif Je suis d'accord avec toi, un atof ou un distof @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 13 mai 2004 Posté(e) le 13 mai 2004 Humm... je reviens sur ce que je viens de dire, un (atof "abc") retourne 0.0, ce qui peut être une valeur @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bruno_l Posté(e) le 14 mai 2004 Posté(e) le 14 mai 2004 un (type(read variable)) devrait faire l'affaire non ? (type(read "01")) retourne INT(type (read "ab")) retourne SYM(type (read "10.1")) retourne REAL pour etre plus clair :----------------------------------le dcl -----------------------------------test : dialog { label = "test de differentes actions";:column{ :text {key = "text"; value= "entrez un reel";} :edit_box {key = "quoi"; } :edit_box {key = "ou"; } } ok_cancel_help; } ------------------------------------- le lisp :---------------------------------------(setq DIAL (load_dialog "test-act"))(cond ((null DIAL) (exit)))(new_dialog "test" DIAL)(action_tile "quoi" "(setq quoi (type (read $value))) (if (= quoi 'REAL) (set_tile \"text\" \"valeur correct\") (set_tile \"text\" \"vous devez rentrer un reel\") ) ") ;_ Fin de action_tile(start_dialog)-----------------------------------------
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