Documentation de la biliothèque MED-fichier V2.2 : Guide d'utilisation - Module "MED_Fichier".
|
Retour à la page de garde du guide d'utilisation
Les routines disponibles permettent de :
- Créer un fichier MED.
- Ouvrir (en lecture ou en écriture) un fichier existant.
- Fermer un fichier.
- Accéder au numéro de version de la bibliothèque MED que l'on utilise (en l'occurrence V2.2.2).
- Lire dans un fichier le numéro de version de la bibliothèque MED qui a été utilisée pour
le créer.
- Tester si le fichier que l'on veut lire a été créé avec la même version de bibliothèque MED
que celle qu'on utilise pour le lire.
- Tester si le fichier que l'on veut lire est au format HDF V5.
- Monter dans le fichier MED courant le contenu d'un autre fichier MED.
- Démonter un fichier précédemment monté.
- Ecrire/lire un en-tête de fichier.
Le détail de ces routines est précisé dans la rubrique du guide de référence du module "MED_Fichier".
La définition du mode d'accès à un fichier se fait lors de l'ouverture de ce fichier
avec la routine MEDouvrir/efouvr.
Les différents modes d'accès possibles sont :
- MED_LECTURE : Ouverture en lecture seule. Il est alors impossible de modifier le contenu du fichier.
- MED_LECTURE_ECRITURE : Ouverture en lecture/écriture du fichier. Si une donnée existe
déjà et qu'on la réécrit, elle est écrasée.
- MED_LECTURE_AJOUT : Ouverture en lecture/écriture du fichier. L'écriture n'est possible que pour
ajouter de nouvelles données : si une donnée existe et qu'on tente de la réécrire dans le fichier, une erreur est générée.
- MED_CREATION : Création du fichier s'il n'existe pas, écrasement sinon.
Si on ouvre plusieurs fichiers MED en même temps, ces fichiers doivent être ouverts
selon le même mode d'accès.
La création d'un nouveau fichier ou l'ouverture d'un fichier existant se
fait par l'intermédiaire de la routine MEDouvrir/efouvr. Le
mode d'accès est spécifié par la valeur du paramètre acces.
Cette routine renvoie un identificateur entier (ID) qui sera
utilisé par les autres routines de l'API pour accéder aux
données internes du fichier.
La routine MEDfermer/efferm permet de fermer
le fichier dont l'identificateur (ID) lui est passé en paramètre.
Lors de la création ou de l'ouverture d'un fichier
selon un des différents modes d'écriture possibles,
on peut écrire dans le fichier un en-tête qui comporte au plus
MED_TAILLE_DESC (200) caractères. Cet en-tête est
purement descriptif et est à la discrétion de l'utilisateur.
L'écriture d'un en-tête de fichier se fait par l'intermédiaire
de la routine MEDfichDesEcr/effide. L'écriture
d'un en-tête dans un fichier MED est optionnelle.
Pour lire un en-tête dans un fichier, on dispose de deux routines :
- La première MEDlFichDes/eflfde permet
lire la taille exacte de l'en-tête.
- La seconde MEDfichEntete/effien
permet de lire l'en-tête.
La lecture d'un en-tête d'un fichier MED est optionnelle.
Avant d'ouvrir un fichier existant, il est possible de tester sa conformité
avec le format MED-fichier V2.2 :
- La routine MEDformatConforme/effoco permet de vérifier si
le fichier est au bon format HDF (HDF 5). Cela permet de détecter
par exemple un fichier MED V1.0 au format HDF V4.
- La routine MEDversionConforme/efveco permet de vérifier si le
fichier a été créé avec la bibliothèque MED-fichier V2.2.
Avertissement : il y a pas de compatibilité entre un fichier MED V2.1 et un fichier V2.2.
L'utilitaire "medimport" permet de convertir un fichier au format MED-fichier V2.1
dans un fichier au format V2.2.
De plus les deux fonctionnalités suivantes sont fournies par l'API :
- La routine MEDversionDonner/efvedo permet de récupérer
les trois entiers composant le numéro de version de la bibliothèque MED-fichier utilisée,
en l'occurence :
- numéro majeur : 2.
- numéro mineur : 2.
- numéro de release : 1.
- La routine MEDversionLire/efveli permet de lire dans un fichier
MED que l'on a ouvert au préalable, les entiers composant le numéro de version
de la bibliothèque MED-fichier qui a été utilisée pour créer ce fichier.
Par exemple, dans le cas d'un fichier créé avec MED-fichier V2.2.2, on obtient :
- numéro majeur : 2.
- numéro mineur : 2.
- numéro de release : 1.
Ces 2 routines seront à terme utiles si doivent coexister différentes releases
de MED-fichier V2.2. Elles permettront de voir si le fichier lu a été créé ou
non avec la même release.
Les données d'une étude peuvent être réparties dans des fichiers
différents :
- Les maillages peuvent être dans un premier fichier.
- Les champs de résultat peuvent être dans un second fichier.
Le mécanisme de montage de fichier fourni par l'API de MED-fichier
permet de monter dans un fichier MED (que l'on a au préalable ouvert)
les données contenues dans un autre fichier.
Le montage est sélectif : on monte soit les maillages, soit les champs.
Le mécanisme de montage dépend de 2 routines :
- La routine MEDmonter/efmont permet de créer un point
de montage dans le fichier courant. Ce point de montage permet
d'accéder de manière transparente soit aux maillages, soit aux champs
de résultats d'un fichier distinct du fichier courant.
- La routine MEDdemonter/efdemo permet de desactiver
un point de montage.
Remarques :
- Un point de montage masque temporairement les données
du fichier courant. Exemple : si on monte dans le fichier courant les
maillages d'un autre fichier, les propres maillages du fichier courant sont
inaccessibles tant que le montage est actif.
- Pour un type de donnée (champ ou maillage), on ne peut avoir qu'un seul
point de montage actif. Ce la signifie que dans un fichier on a au plus
deux points de montages actifs : un sur les maillages, un sur les champs.
- Une fois le démontage effectué, les données
précédemment montées ne sont plus accessibles et les données
du fichier local qui étaient éventuellement masquées redeviennent
visibles.
Le programme suivant :
- Crée un fichier de nom "test1.med".
- Y dépose un en-tête.
- Ferme le fichier.
- Ouvre le fichier en mode MED_LECTURE.
- Ferme le fichier.
Accès aux sources :
Le programme suivant :
- Crée puis ferme un fichier de nom "test18.med".
- Récupère et affiche le numéro de version de la bibliothèque MED-fichier
(à savoir 2.2.2).
- Teste la conformité du fichier "test18.med" vis-à-vis du format HDF 5.
- Teste la conformité du fichier "test18.med" vis-à-vis de MED-fichier V2.2.2.
- Ouvre le fichier "test18.med" en mode MED_LECTURE.
- Lit dans "test18.med" le numéro de version de MED-fichier qui a été utilisée
pour créer ce fichier. En l'occurence, on récupère les entiers : 2,2 et 1.
- Ferme le fichier "test18.med".
Accès aux sources :
Le programme suivant :
- Ouvre en mode MED_LECTURE_AJOUT le fichier de nom "test2.med".
Ce fichier existe déjà et contient des maillages.
- Monte dans "test2.med" les champs du fichier de nom "test10.med".
Le fichier "test10.med" existe déjà.
- Consulte les champs désormais visibles dans "test2.med" suite au montage.
- Désactive le point de montage.
- Vérifie que les champs de ne sont plus visibles dans "test2.med".
- Ferme le fichier "test2.med".
- Crée un fichier "test20.med".
- Monte dans "test20.med" les champs du fichier "test10.med"
et les maillages de "test2.med"
- Vérifie que les maillages et champs ainsi montés sont visibles dans
"test20.med".
- Désactive les deux points de montage.
- Ferme le fichier "test20.med".
Accès aux sources :