Aller au contenu

Comment vérifier que la valeur que l\'on rentre dans une edit_box est bien une réel ?


Messages recommandés

Posté(e)

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'avance

Coordialement

Invité Patrick
Posté(e)

Utilise la fonction (type) qui renverra REAL si l'argument est un réel.

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

je salue tout ce beau monde

et 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 ENTIER

et que tu le multiplie par 1.0 (réel)

sa valeur ne change pas, MAIS LE TYPE SI.

CQFD.

amicalement

 

 

Posté(e)

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)

-----------------------------------------

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité