00001 /* This file is part of MED. 00002 * 00003 * COPYRIGHT (C) 1999 - 2015 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 <hdf5.h> 00023 00024 /* 00025 * - Nom de la fonction : _MEDdatasetStringLire 00026 * - Description : lecture d'un dataset tableau de caracteres 00027 * - Parametres : 00028 * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut 00029 * - nom (IN) : le nom de l'attribut 00030 * - val (IN) : valeurs du tableau 00031 * - Resultat : 0 en cas de succes, -1 sinon 00032 */ 00033 med_err _MEDdatasetStringLire(med_idt pere,char *nom,char *val) 00034 { 00035 med_idt dataset,datatype; 00036 med_err ret; 00037 00038 if ((dataset = H5Dopen(pere,nom)) < 0) 00039 return -1; 00040 if ((datatype = H5Tcopy(H5T_C_S1)) < 0) 00041 return -1; 00042 if ((ret = H5Tset_size(datatype,1)) < 0) 00043 return -1; 00044 if ((ret = H5Dread(dataset,datatype,H5S_ALL,H5S_ALL,H5P_DEFAULT,val)) < 0) 00045 return -1; 00046 if ((ret = H5Tclose(datatype)) < 0) 00047 return -1; 00048 if ((ret = H5Dclose(dataset)) < 0) 00049 return -1; 00050 00051 return 0; 00052 }