Télécharger Petit_Exemple.dgibi
* Fichier : Petit_Exemple.dgibi (petit exemple d'utilisation de 'EXTERN') ************************************************************************ ************************************************************************ ************************************************************************ * NOM : EXTE * DESCRIPTION : Teste l'operateur EXTE (Non portable...) * * * * LANGAGE : GIBIANE-CAST3M ************************************************************************ 'OPTION' 'ECHO' 0 ; 'MESS' ; 'MESS' 'Le present exemple est a but purement illustratif !' ; 'MESS' 'Les differents resultats obtenus ne sont pas garantis.' ; 'MESS' ; 'MESS' 'Les elements fournis ici sont a adapter en fonction ' ; 'MESS' ; * Determination de la version de Cast3M (annuelle ou du jour=DEV) : * Cette variable d'environnement existe pour les versions annuelles pas trop anciennes 'SI' ('EGA' str_ver ' ') ; 'FINSI' ; * Determination du systeme : * Cette variable d'environnement existe pour les versions annuelles pas trop anciennes 'SI' ('NEG' str_os ' ') ; 'SI' ('EGA' ('EXTRAIRE' str_os 1 3) 'WIN') ; 'SINON' ; 'FINSI' ; 'SINON' ; * On cherche une variable definie uniquement sous Windows : 'SI' ('EGA' str_z 'Windows_NT') ; 'SINON' ; tab_z = 'EXTERN' 'uname' ; 'SI' ('NEG' tab_z.1 str_os) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'MESS' ; 'MESS' 'TEST sur SYSTEME' ' ' str_os ' avec Cast3M version' ' ' str_ver ; b_err = FAUX ; ** 1ER TEST : 'MESS' ; * Choix de la commande selon le systeme (ici c'est la meme) 'SI' ('EGA' str_os 'Windows') ; 'SINON' ; 'FINSI' ; * Attention l_z ne doit pas commencer par un chiffre sinon le resultat de echo * sera interprete comme un flottant, ce que l'on ne veut pas ici ! l_z = 'MOT' 'Z2345678901234567890123456789012345678901234567890123456789012345678901@345678901234567890123456789C' ; cmd_z = 'CHAINE' cmd_z ' ' l_z ; list cmd_z ; tab_z = 'EXTERN' cmd_z ; 'MESS' ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On n a pas de TABLE de resultat' ; b_err = VRAI ; 'FINSI' ; list tab_z ; 'MESS' ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On attendait un seul retour' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. 1 ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; list obj_z ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; ** 2e TEST : 'MESS' ; * Choix de la commande selon le systeme : 'SI' ('EGA' str_os 'Windows') ; 'SINON' ; 'FINSI' ; list cmd_z ; tab_z = 'EXTERN' cmd_z ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On n a pas de TABLE de resultat' ; b_err = VRAI ; 'FINSI' ; list tab_z ; ** 3e TEST : * Test purement Linux a ce jour : 'SI' (('EGA' str_os 'Linux') 'OU' ('EGA' str_os 'Autre')) ; 'MESS' ; arg_z = 'TABLE' ; * une addition entre entiers : * une multiplication entre entiers : * une addition avec un flottant mais * Le resultat donne par 'bc' sera faux, car il interprete le FLOTTANT .532E+03 envoye par Cast3M comme 0.532+3 ! * Ici on s'assure que le FLOTTANT (532.) est bien transmis. * Pour avoir un resultat correct avec 'bc' et des FLOTTANTS, on les envoie sous forme de CHAINE avec un FORMAT Fx.y sans EXPOSANT ! * Une petite division (entiere car scale=0 par defaut) ** arg_z. 17 = 1 ; arg_z. 18 = 'MOT' '/' ; arg_z. 19 = 'MOT' 'RC' ; arg_z. 20 = 'MOT' 'RC' ; * Une petite division : * Une petite operation complexe tab_z = 'EXTERN' cmd_z arg_z ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On n a pas de TABLE de resultat' ; b_err = VRAI ; 'FINSI' ; list tab_z ; 'MESS' ; res_z = 7 ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On attendait' ' ' res_z ' retours' ; b_err = VRAI ; 'SINON'; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z 1.E-12) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z 1.E-12) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z 1.E-12) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z 1.E-12) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * test PV du bug 11850 'SI' ('EGA' str_os 'Windows'); 'SINO'; 'FINS'; tab_z = 'EXTERN' cmd_z ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On n a pas de TABLE de resultat' ; b_err = VRAI ; 'FINSI' ; list tab_z ; 'MESS' ; res_z = 2 ; 'MESS' 'Erreur lors de l execution de la commande' ; 'MESS' 'On attendait' ' ' res_z ' retours' ; b_err = VRAI ; 'SINON'; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; obj_z = tab_z. i_z ; 'SI' ('EGA' obj_z res_z) ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'SINON' ; 'MESS' 'Erreur lors de l execution de la commande' ; b_err = VRAI ; 'FINSI' ; 'FINSI' ; 'SI' b_err ; 'ERREUR' 5 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales