/*************************************************************************************************************************************/
/* */
/* R E C U P E R A T I O N D ' U N F I C H I E R ' ASCII ' */
/* E T C O N V E R S I O N E N U N E I M A G E ' Float ' : */
/* */
/* */
/* Utilisation : */
/* */
/* Pour utiliser une image 'ASCII' */
/* (avec un element par ligne) on fera */
/* par exemple : */
/* */
/* $xcg/ascii_Float$X A=... $formatI | $xci/acces$X standard=FAUX $formatI | ... */
/* */
/* */
/* Rangement en memoire : */
/* */
/* Les images image(X,Y) sont rangees sequentiellement */
/* dans la memoire de la facon suivante image[Y][X] : c'est la */
/* coordonnee "X" qui varie la plus vite ; on trouve donc */
/* ainsi dans l'ordre les points {X,Y} : */
/* */
/* (0,0),(1,0),(2,0),... */
/* (0,1),(1,1),(2,1),... */
/* (0,2),(1,2),(2,2),... */
/* . */
/* . */
/* . */
/* */
/* ainsi que cela est decrit dans 'v $xiii/Images$DEF Rangement.en.memoire'. */
/* */
/* */
/* Author of '$xcg/ascii_Float$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#define LE_FICHIER_EST_FLOTTANT \
VRAI \
/* Le fichier argument contient des 'Float' ('VRAI') ou des 'Int' ('FAUX'). */
#define NOMBRE_D_ELEMENTS_A_SAUTER_EN_TETE_DU_FICHIER \
ZERO \
/* Nombre d'elements a sauter en tete du fichier... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* R E C U P E R A T I O N D ' U N F I C H I E R ' ASCII ' */
/* E T C O N V E R S I O N E N U N E I M A G E ' Float ' : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
DEFV(Logical,INIT(le_fichier_est_flottant,LE_FICHIER_EST_FLOTTANT));
/* Le fichier arguemt contient des 'Float' ('VRAI') ou des 'Int' ('FAUX'). */
DEFV(Positive,INIT(nombre_d_elements_a_sauter_en_tete_du_fichier,NOMBRE_D_ELEMENTS_A_SAUTER_EN_TETE_DU_FICHIER));
/* Nombre d'elements a sauter en tete du fichier... */
/*..............................................................................................................................*/
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("flottant=""float=""Float=",le_fichier_est_flottant);
GET_ARGUMENT_I("tete=",nombre_d_elements_a_sauter_en_tete_du_fichier);
)
);
begin_nouveau_block
Bblock
BDEFV(imageF,imageR_Float);
/* Image flottante dans le format standard... */
Test(EST_VRAI(le_fichier_est_flottant))
Bblock
CALS(Fload_fichier_formatte_Float(nom_imageA
,imageR_Float
,dimXY
,nombre_d_elements_a_sauter_en_tete_du_fichier
,ZERO
,files_____editer_les_messages_d_erreur_de_lecture_des_fichiers
,FZERO
,LE_NOM_DU_FICHIER_N_EST_PAS_CONVERTISSABLE_EN_UNE_VALEUR_NUMERIQUE
)
);
Eblock
ATes
Bblock
CALS(Fload_fichier_formatte_Int(nom_imageA
,ConversionEventuelle_Int(imageR_Float)
,dimXY
,nombre_d_elements_a_sauter_en_tete_du_fichier
,ZERO
,files_____editer_les_messages_d_erreur_de_lecture_des_fichiers
,FZERO
,LE_NOM_DU_FICHIER_N_EST_PAS_CONVERTISSABLE_EN_UNE_VALEUR_NUMERIQUE
)
);
/* La procedure 'ConversionEventuelle_Int(...)' a ete introduite le 20040623115744... */
Eblock
ETes
CALi(IupdateF_image(nom_imageR,imageR_Float));
/* Rangement de l'image 'Float'... */
EDEFV(imageF,imageR_Float);
/* Image flottante dans le format standard... */
Eblock
end_nouveau_block
RETU_Commande;
Eblock
ECommande