/*************************************************************************************************************************************/ /* */ /* G E N E R A T E U R I N F I N I D E P A P I E R P E I N T : */ /* */ /* */ /* Definition : */ /* */ /* Cette commande affiche indefiniment */ /* des variations sur une image Argument */ /* obtenues par une procedure iterative du */ /* type : */ /* */ /* IMAGE(n+1) = Iminmax[IMAGE(n),decalage(IMAGE(n))]. */ /* */ /* */ /* Author of '$xci/papier.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1988??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE #include image_image_QUAD_IMAGE_EXT #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX # include image_drive_dpx5c_FONCTION_EXT #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW # include image_drive_XWind_FONCTION_EXT # ifdef __VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL # include image_drive_SiliG_FONCTION_1_EXT # Aifdef __VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL # Eifdef __VERSION__UTILISER_LA_BIBLIOTHEQUE_OpenGL #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xci/display.01.I" #define DUREE_D_ATTENTE \ ZERO \ /* Attente implicite avant de passer a l'image suivante... */ #define TRANSLATION_OX \ PARE(0.2) \ /* Translation horizontale implicite, */ #define TRANSLATION_OY \ PARE(0.3) \ /* Translation verticale implicite. */ #define LOGIQUE_FLOUE \ VRAI \ /* Est-ce la logique floue ('VRAI') ou binaire ('FAUX'). */ #define UTILISER_LE_OU \ FAUX #define UTILISER_LE_ET \ FAUX #define UTILISER_LE_OU_EXCLUSIF \ VRAI /* Dans les deux cas, quels sont les operateurs que l'on doit utiliser ? */ #define SAUVEGARDER_TOUTES_LES_IMAGES_PRODUITES \ FAUX \ /* Faut-il conserver toutes les images produites ('VRAI') ou pas ('FAUX') et donc se */ \ /* contenter de les montrer... */ #include xci/sequence.01.I" #define EDITER_LE_NOM_DES_IMAGES \ FAUX \ /* Indique si le nom de chacune des images sauvegardess doit etre indique ('VRAI') ou pas */ \ /* ('FAUX'), l'edition ayant lieu comme pour un message d'erreur (afin de ne pas perturber */ \ /* le "pipe" des images...). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #include xci/display.02.I" #define SAUVEGARDE_FACULTATIVE_DU_NOM_DE_CHAQUE_IMAGE \ Bblock \ Test(IL_FAUT(editer_le_nom_des_images)) \ Bblock \ EGAL(nom_image \ ,chain_Aconcaten2(nom_imageR,chain_numero(INTE(numero_d_image),nombre_de_chiffres)) \ ); \ /* On notera que l'on utilise non pas 'chain_Aconcaten2_sauf_nom_pipe(...)' mais */ \ /* 'chain_Aconcaten2(...)' car en effet, si l'edition sans sauvegarde est demandee, */ \ /* alors 'nom_imageR' vaut 'NOM_PIPE' en general... */ \ CAL3(Prme1("%s\n",nom_image)); \ CALZ_FreCC(nom_image); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ \ Test(IL_FAUT(sauvegarder_toutes_les_images_produites)) \ Bblock \ Test(IFET(IFINff(numero_d_image,premiere_image,derniere_image) \ ,IZEQ(REST(SOUS(numero_d_image,premiere_image),pas_des_images)) \ ) \ ) \ Bblock \ EGAL(nom_image \ ,chain_Aconcaten2_sauf_nom_pipe(nom_imageR,chain_numero(INTE(numero_d_image),nombre_de_chiffres)) \ ); \ /* Generation du nom de l'image a sauvegarder... */ \ CALi(Iupdate_image(nom_image,ImageR)); \ /* Sauvegarde de l'image courante lorsque son numero est dans les bornes... */ \ CALZ_FreCC(nom_image); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ \ INCR(numero_d_image,PAS_DES_IMAGES); \ /* Progression systematique du numero d'image... */ \ Eblock \ /* Sauvegarde, lorsque cela est demande, du nom de l'image courante... */ #define GESTION_DU_PAPIER_PEINT \ Bblock \ DEFV(Int,INIT(nombre_d_operateurs,ZERO)); \ /* Afin de compter le nombre d'operateurs utilises... */ \ \ CALS(Itranslation(ImageA,ImageR,ADRESSE(translation),VRAI,VRAI)); \ /* Translation de l'image courante sur un tore (VRAI,VRAI). */ \ \ Test(IL_FAUT(logique_floue)) \ Bblock \ Test(IL_FAUT(utiliser_le_ou)) \ Bblock \ CALS(Imaximum(ImageR,ImageR,ImageA)); \ /* Combinaison (par un "ou flou") de l'image courante ('ImageR') avec */ \ /* elle-meme decalee sur un tore ('ImageA'). */ \ INCR(nombre_d_operateurs,I); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Test(IL_FAUT(utiliser_le_et)) \ Bblock \ CALS(Iminimum(ImageR,ImageR,ImageA)); \ /* Combinaison (par un "et flou") de l'image courante ('ImageR') avec */ \ /* elle-meme decalee sur un tore ('ImageA'). */ \ INCR(nombre_d_operateurs,I); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Test(IL_FAUT(utiliser_le_ou_exclusif)) \ Bblock \ CALS(Iminmax(ImageR,ImageR,ImageA)); \ /* Combinaison (par un "ou exclusif flou") de l'image courante ('ImageR') avec */ \ /* elle-meme decalee sur un tore ('ImageA'). */ \ INCR(nombre_d_operateurs,I); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ ATes \ Bblock \ Test(IL_FAUT(utiliser_le_ou)) \ Bblock \ CALS(Ior(ImageR,ImageR,ImageA)); \ /* Combinaison (par un "ou binaire") de l'image courante ('ImageR') avec */ \ /* elle-meme decalee sur un tore ('ImageA'). */ \ INCR(nombre_d_operateurs,I); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Test(IL_FAUT(utiliser_le_et)) \ Bblock \ CALS(Iand(ImageR,ImageR,ImageA)); \ /* Combinaison (par un "et binaire") de l'image courante ('ImageR') avec */ \ /* elle-meme decalee sur un tore ('ImageA'). */ \ INCR(nombre_d_operateurs,I); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Test(IL_FAUT(utiliser_le_ou_exclusif)) \ Bblock \ CALS(Ieor(ImageR,ImageR,ImageA)); \ /* Combinaison (par un "ou exclusif binaire") de l'image courante ('ImageR') avec */ \ /* elle-meme decalee sur un tore ('ImageA'). */ \ INCR(nombre_d_operateurs,I); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ ETes \ \ Test(IFNE(nombre_d_operateurs,UN)) \ Bblock \ PRINT_ATTENTION("le nombre d'operateurs utilises est different de 1"); \ CAL1(Prer1("il vaut %d\n",nombre_d_operateurs)); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ /* Realisation des operations demandees... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E N E R A T E U R I N F I N I D E P A P I E R P E I N T : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE)); /* Nom de l'image a displayer. */ DEFV(CHAR,INIC(POINTERc(nom_paletteA),NOM_PIPE)); /* Nom de la palette a utiliser. */ DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); /* Nom du Resultat de la generation. */ DEFV(Int,INIT(duree_d_attente,DUREE_D_ATTENTE)); /* Duree d'attente apres l'affichage d'une image et avant son effacement. */ DEFV(deltaF_2D,dimension_de_la_fenetre); /* Dimension de la fenetre de visualisation. */ DEFV(Float,INIT(translation_OX,TRANSLATION_OX)); DEFV(Float,INIT(translation_OY,TRANSLATION_OY)); /* Argument de translation de la fenetre. */ DEFV(deltaF_2D,translation); /* Translation de la fenetre. */ DEFV(Logical,INIT(logique_floue,LOGIQUE_FLOUE)); /* Est-ce la logique floue ('VRAI') ou binaire ('FAUX'). */ DEFV(Logical,INIT(utiliser_le_ou,UTILISER_LE_OU)); DEFV(Logical,INIT(utiliser_le_et,UTILISER_LE_ET)); DEFV(Logical,INIT(utiliser_le_ou_exclusif,UTILISER_LE_OU_EXCLUSIF)); /* Dans les deux cas, quels sont les operateurs que l'on doit utiliser ? */ DEFV(Logical,INIT(sauvegarder_toutes_les_images_produites,SAUVEGARDER_TOUTES_LES_IMAGES_PRODUITES)); /* Faut-il conserver toutes les images produites ('VRAI') ou pas ('FAUX') et donc se */ /* contenter de les montrer... */ DEFV(Int,INIT(premiere_image,PREMIERE_IMAGE)); /* Numero de la premiere image, */ DEFV(Int,INIT(derniere_image,DERNIERE_IMAGE)); /* Numero de la derniere image. */ DEFV(Int,INIT(pas_des_images,PAS_DES_IMAGES)); /* Pas de passage d'un numero d'image a une autre. */ DEFV(Int,INIT(nombre_de_chiffres,NOMBRE_DE_CHIFFRES)); /* Nombre de chiffres codant le numero des images de la serie... */ DEFV(Int,INIT(numero_d_image,PREMIERE_IMAGE)); DEFV(Int,INIT(numero_d_image_pour_DoIn,PREMIERE_IMAGE)); /* Numero de l'image courante ('numero_d_image_pour_DoIn' introduit le 19970903140850). */ DEFV(CHAR,INIT(POINTERc(nom_image),NOM_UNDEF)); /* Nom courant des images lorsqu'il faut les sauvegarder. */ DEFV(Logical,INIT(editer_le_nom_des_images,EDITER_LE_NOM_DES_IMAGES)); /* Indique si le nom de chacune des images sauvegardees doit etre indique ('VRAI') ou pas */ /* ('FAUX'), l'edition ayant lieu comme pour un message d'erreur (afin de ne pas perturber */ /* le "pipe" des images... */ #include xci/display.03.I" #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX DEFV(pointF_2D,coin_haut_gauche); /* Position du coin haut gauche de la fenetre. */ #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW /*..............................................................................................................................*/ #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX INITIALISATION_POINT_2D(coin_haut_gauche,_____cNORMALISE_OX5(X_COIN_HAUT_GAUCHE),_____cNORMALISE_OY5(Y_COIN_HAUT_GAUCHE)); /* Definition de la position implicite de la fenetre. */ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("paletteA=""palette=""pA=""p=",nom_paletteA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_I("duree=""d=",duree_d_attente); GET_ARGUMENT_F("xc=""x=""X=",ASD1(coin_haut_gauche,x)); GET_ARGUMENT_F("yc=""y=""Y=",ASD1(coin_haut_gauche,y)); GET_ARGUMENT_F("trx=""trX=",translation_OX); GET_ARGUMENT_F("try=""trY=",translation_OY); GET_ARGUMENT_L("flou=",logique_floue); GET_ARGUMENT_L("ou=""or=",utiliser_le_ou); GET_ARGUMENT_L("et=""and=",utiliser_le_et); GET_ARGUMENT_L("ou_exclusif=""eor=",utiliser_le_ou_exclusif); GET_ARGUMENT_L("sauvegarder=",sauvegarder_toutes_les_images_produites); GET_ARGUMENT_I("premiere=",premiere_image); GET_ARGUMENT_I("derniere=",derniere_image); GET_ARGUMENT_I("pas=",pas_des_images); GET_ARGUMENT_I("chiffres=",nombre_de_chiffres); GET_ARGUMENT_L("editer=",editer_le_nom_des_images); ) ); INITIALISATION_ACCROISSEMENT_2D(translation,translation_OX,translation_OY); /* Mise en place de la translation de la fenetre. */ EGAL(numero_d_image,premiere_image); /* Numero de la premiere image a generer eventuellement... */ Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageR,nom_imageA)))) Bblock CHARGEMENT_DE_LA_PALETTE_DE_COULEURS; /* Chargement des trois listes de substitution constitutive d'une palette. */ INITIALISATION_ACCROISSEMENT_2D(dimension_de_la_fenetre,_____lNORMALISE_OX5(dimX5),_____lNORMALISE_OY5(dimY5)); /* Definition des dimensions de la fenetre. */ CALS(IDopen(nom_imageA,ADRESSE(dimension_de_la_fenetre),ADRESSE(coin_haut_gauche))); DoIn(numero_d_image_pour_DoIn,premiere_image,derniere_image,pas_des_images) /* Jusqu'au 19970903140850, c'etait 'Loop' qui etait utilise ici. Mais a cause de la */ /* generation des images '$xiirf/PAYS.W2$M' et '$xiirf/PAYS.W2$m' qui utilisent cette */ /* commande ('v $xiirf/$Fnota papier.01'), il est devenu imperatif que cette commande */ /* puisse s'arreter automatiquement lorsqu'un certain nombre d'images ont ete produites... */ Bblock CALS(IDdisplay(ImageR)); SAUVEGARDE_FACULTATIVE_DU_NOM_DE_CHAQUE_IMAGE; /* Sauvegarde, si necessaire de l'image courante (y compris l'image Argument)... */ GESTION_DU_PAPIER_PEINT; /* Realisation des operations demandees... */ DODO(duree_d_attente); Eblock EDoI /* Jusqu'au 19970903140850, c'etait 'ELoo' qui etait utilise ici. Mais a cause de la */ /* generation des images '$xiirf/PAYS.W2$M' et '$xiirf/PAYS.W2$m' qui utilisent cette */ /* commande ('v $xiirf/$Fnota papier.01'), il est devenu imperatif que cette commande */ /* puisse s'arreter automatiquement lorsqu'un certain nombre d'images ont ete produites... */ CALS(IDclose()); Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_SPIX #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW INITIALISATION_POINT_2D(coin_bas_gauche,_____cNORMALISE_OX11(X_COIN_BAS_GAUCHE),_____cNORMALISE_OY11(Y_COIN_BAS_GAUCHE)); /* Definition de la position implicite de la fenetre. */ EGAL(X11_____signaler_les_evenements_inattendus,SIGNALER_LES_EVENEMENTS_INATTENDUS); /* Initialisation du signalisateur d'evenement inattendu... */ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("serveur=",serveur_standard); GET_ARGUMENT_L("ne_pas_verifier_le_serveur=""npvs=" ,IXopen_____X_Window_accepter_le_serveur_sans_verification ); GET_ARGUMENT_N("verifier_le_serveur=""vs=" ,IXopen_____X_Window_accepter_le_serveur_sans_verification ); /* Arguments introduits le 20100109113251 pour acceder au serveur 'Xming' (Windows Vista). */ GET_ARGUMENT_L("attention=",editer_les_PRINT_ATTENTION_initiaux); GET_ARGUMENT_L("signaler=",X11_____signaler_les_evenements_inattendus); GET_ARGUMENT_L("trop_grandes=""trop_grande=" ,X11_____tenter_l_ouverture_des_fenetres_trop_grandes_par_rapport_a_l_ecran ); GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("paletteA=""palette=""pA=""p=",nom_paletteA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_I("nombre=""couleurs=",nombre_de_couleurs_necessaires); GET_ARGUMENT_I("duree=""d=",duree_d_attente); GET_ARGUMENT_L("centrer=""Fcentrer=""Fc=",centrer_la_fenetre); /* Parametre introduit le 20060427162715... */ GET_ARGUMENT_F("xc=""x=""X=",ASD1(coin_bas_gauche,x)); GET_ARGUMENT_F("yc=""y=""Y=",ASD1(coin_bas_gauche,y)); GET_ARGUMENT_F("trx=""trX=",translation_OX); GET_ARGUMENT_F("try=""trY=",translation_OY); GET_ARGUMENT_L("flou=",logique_floue); GET_ARGUMENT_L("ou=""or=",utiliser_le_ou); GET_ARGUMENT_L("et=""and=",utiliser_le_et); GET_ARGUMENT_L("ou_exclusif=""eor=",utiliser_le_ou_exclusif); GET_ARGUMENT_L("sauvegarder=",sauvegarder_toutes_les_images_produites); GET_ARGUMENT_I("premiere=",premiere_image); GET_ARGUMENT_I("derniere=",derniere_image); GET_ARGUMENT_I("pas=",pas_des_images); GET_ARGUMENT_I("chiffres=",nombre_de_chiffres); GET_ARGUMENT_L("editer=",editer_le_nom_des_images); GET_ARGUMENT_C("substitution=""s=",nom_substitution); ) ); RECHERCHE_D_UNE_LISTE_DE_SUBSTITUTION(nom_substitution,substitution_courante,substitution_courante); /* Tentative de recherche de la substitution demandee... */ INITIALISATION_ACCROISSEMENT_2D(translation,translation_OX,translation_OY); /* Mise en place de la translation de la fenetre. */ EGAL(numero_d_image,premiere_image); /* Numero de la premiere image a generer eventuellement... */ Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageR,nom_imageA)))) Bblock CHARGEMENT_DE_LA_PALETTE_DE_COULEURS; /* Chargement des trois listes de substitution constitutive d'une palette. */ Test(IFEQ(substitution_courante,L_SUBSTITUTION_VARIABLE)) Bblock CALS(Icompactage_d_une_palette(nombre_de_couleurs_necessaires)); /* Pour la substitution 'VARIABLE', on procede a un compactage de la palette Argument. */ Eblock ATes Bblock Eblock ETes Test(IFNE(substitution_courante,L_SUBSTITUTION_NEUTRE)) Bblock SUBSTITUTION(substitution_courante); /* Positionnement de la substitution courante quelqu'elle soit (mais non 'NEUTRE'...). */ SET_FILTRAGE(ACTIF); /* Et on active le filtrage... */ Eblock ATes Bblock Eblock ETes INITIALISATION_ACCROISSEMENT_2D(dimension_de_la_fenetre,_____lNORMALISE_OX11(dimX11),_____lNORMALISE_OY11(dimY11)); /* Definition des dimensions de la fenetre. */ CALS(IXinitialisation()); /* Initialisation fondamentale introduite le 20160815122126... */ CALS(IXopen(serveur_standard ,nom_imageA ,ADRESSE(dimension_de_la_fenetre) ,centrer_la_fenetre ,ADRESSE(coin_bas_gauche) ,editer_les_PRINT_ATTENTION_initiaux ) ); DoIn(numero_d_image_pour_DoIn,premiere_image,derniere_image,pas_des_images) /* Jusqu'au 19970903140850, c'etait 'Loop' qui etait utilise ici. Mais a cause de la */ /* generation des images '$xiirf/PAYS.W2$M' et '$xiirf/PAYS.W2$m' qui utilisent cette */ /* commande ('v $xiirf/$Fnota papier.01'), il est devenu imperatif que cette commande */ /* puisse s'arreter automatiquement lorsqu'un certain nombre d'images ont ete produites... */ Bblock CALS(IXdisplay(ImageR ,Image_ROUGE ,Image_VERTE ,Image_BLEUE ,INCREMENT_DES_NIVEAUX_PAR_DEFAUT_DE_IXdisplay ,TRANSLATER_LE_NOIR_PAR_DEFAUT_DE_IXdisplay ) ); /* On notera que {Image_ROUGE,Image_VERTE,Image_BLEUE} ne sont pas utiles ici, mais mises */ /* en place uniquement pour des raisons syntanxiques (introduit le 20030101172358). */ SAUVEGARDE_FACULTATIVE_DU_NOM_DE_CHAQUE_IMAGE; /* Sauvegarde, si necessaire de l'image courante (y compris l'image Argument)... */ PUSH_FILTRAGE; /* Sauvegarde de l'etat courant du filtrage des niveaux. */ SET_FILTRAGE(INACTIF); /* Et ce afin de ne pas perturber les processus 'Itranslation(...)', 'Iminmax(...)' */ /* et 'Ieor(...)'. */ GESTION_DU_PAPIER_PEINT; /* Realisation des operations demandees... */ PULL_FILTRAGE; /* Et restauration des conditions initiales... */ DODO(duree_d_attente); Eblock EDoI /* Jusqu'au 19970903140850, c'etait 'ELoo' qui etait utilise ici. Mais a cause de la */ /* generation des images '$xiirf/PAYS.W2$M' et '$xiirf/PAYS.W2$m' qui utilisent cette */ /* commande ('v $xiirf/$Fnota papier.01'), il est devenu imperatif que cette commande */ /* puisse s'arreter automatiquement lorsqu'un certain nombre d'images ont ete produites... */ CALS(IXclose()); Test(IFNE(substitution_courante,L_SUBSTITUTION_NEUTRE)) Bblock SET_FILTRAGE(INACTIF); SUBSTITUTION(L_SUBSTITUTION_NEUTRE); Eblock ATes Bblock Eblock ETes Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_X_WINDOW #ifdef __VERSION__COMPILER_LE_GRAPHIQUE_ROS GET_ARGUMENTSi(nombre_d_arguments ,BLOC(VIDE; ) ); /* Introduit le 20070301174645... */ PRINT_ATTENTION("les fonctions graphiques ne sont pas implementees"); #Aifdef __VERSION__COMPILER_LE_GRAPHIQUE_ROS #Eifdef __VERSION__COMPILER_LE_GRAPHIQUE_ROS RETU_Commande; Eblock ECommande