Créer/Ouvrir/Fermer un fichier MED

# Ouverture/Création d'un fichier MED

L'ouverture/création d'un fichier MED s'effectue avec la routine MEDfileOpen (C) / mfiope (F).

Cette routine renvoie un identificateur ( `fid` ) utilisé par les autres routines de l'API pour accéder aux données du fichier.

Les différents modes d'accès possibles sont :

- Création (MED_ACC_CREAT)

- Ouverture en lecture seule (MED_ACC_RDONLY)

- Ouverture en lecture/écriture (MED_ACC_RDWR)

- Ouverture en lecture/écriture avec ajout (MED_ACC_RDEXT)

Dans ce dernier mode, l'écriture n'est possible que pour ajouter dans le fichier de nouvelles données (une erreur est générée si la donnée existe déjà).

fid = MEDfileOpen("test1.med",MODE_ACCES);

Fichier d'exemple associé

# Fermeture d'un fichier MED

La routine MEDfileClose (C) / mficlo (F) permet de fermer un fichier.

if ((ret = MEDfileClose(fid)) < 0) {
MESSAGE("Erreur à la fermeture du fichier");
return -1;
}

Fichier d'exemple associé

# Entête de fichier

La routine MEDfileCommentWr (C) / mficow (F) permet l'écriture d'un en-tête de fichier, la routine MEDfileCommentRd (C) / mficor (F) la lecture.

Cet en-tête à usage optionnel est purement descriptif. Il comporte au plus MED_COMMENT_SIZE caractères.

char des[MED_COMMENT_SIZE+1]="Ceci est une courte description de mon fichier test1.med";
if (MEDfileCommentWr(fid,des) < 0) {
MESSAGE("Erreur à l'ecriture de l'en-tete du fichier");
ret = -1;
}

Fichier d'exemple associé

char des[MED_COMMENT_SIZE+1]="";
ret = MEDfileCommentRd(fid, des);

Fichier d'exemple associé

# Compatibilité entre la version du fichier et la version de la bibliothèque

La routine MEDfileCompatibility / mficom permet de vérifier :

- Si le fichier est au format HDF5

- S'il correspond à un fichier MED compatible avec la bibliothèque.

L'appel à cette routine se fait généralement avant l'ouverture du fichier.

med_bool hdfok=MED_FALSE,medok=MED_FALSE;
if (MEDfileCompatibility("test18.med",&hdfok,&medok)<0 ) {
MESSAGE("Erreur à la vérification de la compatibilité du fichier avec les bibliothèques med et hdf.");
return -1;
}

Fichier d'exemple associé

# Lecture de la version du fichier

Les routines MEDfileNumVersionRd / mfinvr et MEDfileStrVersionRd / mfisvr lisent la version de la bibliothèque MED utilisée à la création du fichier.

- MEDfileNumVersionRd / mfinvr lit la version sous forme de trois scalaire majeur,mineur,release

  med_int majeur=0, mineur=0, release=0;
  if (MEDfileNumVersionRd(fid, &majeur, &mineur, &release) < 0) {
  MESSAGE("Erreur a la lecture du numero de version de la bibliothèque ");
  return -1;
  }
  fprintf(stdout,"- Ce fichier a ete cree avec MED " IFORMAT "." IFORMAT "." IFORMAT " \n",majeur,mineur,release);

  Fichier d'exemple associé

- MEDfileStrVersionRd / mfisvr lit la version sous forme de chaîne de caractère

  char medversion[MED_SNAME_SIZE+1]="";
  if ( MEDfileStrVersionRd(fid, medversion) < 0 ) {
  MESSAGE("Erreur à la lecture de la version du fichier MED");
  return -1;
  }
  fprintf(stdout,"- Ce fichier a ete cree avec %s\n",medversion);

  Fichier d'exemple associé

# Liens vers les fichiers exemples utilisés

- Fichier d'exemple test1.c

- Fichier d'exemple test2.c

- Fichier d'exemple test18.c

MED_COMMENT_SIZE
#define MED_COMMENT_SIZE
Definition: med.h:79
MEDfileOpen
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
Definition: MEDfileOpen.c:42
MED_SNAME_SIZE
#define MED_SNAME_SIZE
Definition: med.h:82
MED_FALSE
Definition: med.h:260
MEDfileCommentWr
MEDC_EXPORT med_err MEDfileCommentWr(const med_idt fid, const char *const comment)
Ecriture d'un descripteur dans un fichier MED.
Definition: MEDfileCommentWr.c:34
MESSAGE
#define MESSAGE(chaine)
Definition: med_utils.h:324
MEDfileStrVersionRd
MEDC_EXPORT med_err MEDfileStrVersionRd(const med_idt fid, char *const version)
Lecture du numéro de version de la bibliothèque MED utilisée pour créer le fichier (renvoyé sous la f...
Definition: MEDfileStrVersionRd.c:35
med_int
int med_int
Definition: med.h:342
med_bool
med_bool
Definition: med.h:260
IFORMAT
#define IFORMAT
Definition: med_utils.h:145
MEDfileNumVersionRd
MEDC_EXPORT med_err MEDfileNumVersionRd(const med_idt fid, med_int *const major, med_int *const minor, med_int *const release)
Lecture du numéro de version de la bibliothèque MED utilisée pour créer le fichier.
Definition: MEDfileNumVersionRd.c:34
MEDfileCommentRd
MEDC_EXPORT med_err MEDfileCommentRd(const med_idt fid, char *const comment)
Lecture d'un descripteur dans un fichier MED.
Definition: MEDfileCommentRd.c:33
MODE_ACCES
#define MODE_ACCES
Definition: test1.c:34
MEDfileCompatibility
MEDC_EXPORT med_err MEDfileCompatibility(const char *const filename, med_bool *const hdfok, med_bool *const medok)
Vérification de la compatibilité d'un fichier avec HDF et MED.
Definition: MEDfileCompatibility.c:34
MEDfileClose
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
Definition: MEDfileClose.c:30