# MEDlienInfo.c

Aller à la documentation de ce fichier.

    00001 /*  This file is part of MED.
    00002  *
    00003  *  COPYRIGHT (C) 1999 - 2012  EDF R&D, CEA/DEN
    00004  *  MED is free software: you can redistribute it and/or modify
    00005  *  it under the terms of the GNU Lesser General Public License as published by
    00006  *  the Free Software Foundation, either version 3 of the License, or
    00007  *  (at your option) any later version.
    00008  *
    00009  *  MED is distributed in the hope that it will be useful,
    00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012  *  GNU Lesser General Public License for more details.
    00013  *
    00014  *  You should have received a copy of the GNU Lesser General Public License
    00015  *  along with MED.  If not, see <http://www.gnu.org/licenses/>.
    00016  */
    00017
    00018
    00019 #include <med.h>
    00020 #include "med_config.h"
    00021 #include "med_outils.h"
    00022 #include <string.h>
    00023
    00024 med_err MEDlienInfo(_IN med_idt fid, _IN int indice, _OUT char * maa, _OUT med_int * n)
    00025 {
    00026
    00027   int numero;
    00028   med_idt lnid;
    00029   char chemin[MED_TAILLE_LIENS+MED_TAILLE_NOM+1];
    00030
    00031   /*
    00032    * On inhibe le gestionnaire d'erreur
    00033    */
    00034   _MEDmodeErreurVerrouiller();
    00035 if (MEDcheckVersion(fid) < 0) return -1;
    00036
    00037
    00038   /*
    00039    * On recupere le nom du groupe de rang "indice"
    00040    */
    00041
    00042   strcpy(chemin,MED_LIENS);
    00043   numero = indice-1;
    00044
    00045   if ( _MEDobjetIdentifier(fid,chemin,numero,maa) < 0) {
    00046     MESSAGE("Impossible d'itérer sur le groupe : ");
    00047     SSCRUTE(MED_LIENS); return -1;
    00048   }
    00049
    00050   /*
    00051    * On va chercher l'attribut taille du profil
    00052    */
    00053   strcat(chemin,maa);
    00054
    00055   if ((lnid = _MEDdatagroupOuvrir(fid,chemin)) < 0) {
    00056     MESSAGE("Impossible d'ouvrir le datagroup  : ");
    00057     SSCRUTE(chemin); return -1;
    00058   }
    00059
    00060   if ( _MEDattrEntierLire(lnid,MED_NOM_NBR,n) < 0) {
    00061     MESSAGE("Impossible de lire l'attribut  : ");
    00062     SSCRUTE(chemin);SSCRUTE(MED_NOM_NBR); return -1;
    00063   }
    00064
    00065   if ( _MEDdatagroupFermer(lnid) < 0) {
    00066     MESSAGE("Impossible de fermer le groupe  : ");
    00067     SSCRUTE(chemin);return -1;
    00068   }
    00069
    00070   return 0;
    00071
    00072 }