Dilib, module Hfd, type Hcs

De Wicri Outils
LogoDilib.gif
Panneau travaux.png
Bibliothèque Dilib (ressources numériques)
Module Hfd

Le type Hcs (Hfd Control Structure) est un élément XML qui permet de contrôler une structure HFD.

 

Constructeur HcsImplicitHcs

Synopsis
SxmlNode *HcsImplicitHcs();
Description

Ce constructeur crée un élément de contrôle correspondant à la structure implicite des HFD (4 chiffres hexadécimaux suivis de 2 chiffres décimaux).

   <hfd>
     <struct>
       <dir>
          <digit>0123456789ABCDRF</digit>
          <digit>0123456789ABCDEF</digit>
      </dir>
      <file>
          <digit>0123456789ABCDEF</digit>
          <digit>0123456789ABCDEF</digit>
      </file>
      <key>
          <digit>0123456789</digit>
          <digit>0123456789</digit>
      </key>
    </struct>
  </hfd>

Fonction HcsGetFirstKey

Synopsis
 char *HcsGetFirstKey (SxmlNode *hcs);

Cette fonction renvoie un pointeur sur une chaîne de caractères contenant la première clé d'une organisation HFD.

Attention, la chaîne est volatile (pointeur sur un Buffer interne) et il convient d'utiliser la fonction strdup() pour la conserver.

Fonction HcsGetNextKey

char *HcsGetNextKey (SxmlNode *hcs, char *previousKey);

Fonction HcsGetFirstKeyBuffer

Synopsis
 char *HcsGetFirstKeyBuffer (SxmlNode *hcs, Buffer *bufKey);

Cette fonction range dans le Buffer donné en paramètre la première clé d'une organisation HFD. Elle renvoie un pointeur sur la chaîne associée.

Fonction HcsGetNextKeyBuffer

Synopsis
 char *HcsGetFirstKeyBuffer (SxmlNode *hcs, Buffer *bufKey);

Cette fonction incrémente la chaîne contenue dans le Buffer donné en paramètre. Elle renvoie un pointeur sur la chaîne associée.

Exemples

Sans Buffer
 #include "Hcs.h"
  
 SxmlNode *myHcs;
 char *keyToPrint;
 char *nextKey;

 myHfd=HcsImplicitHcs();
 keyToPrint=strdup(HcsGetFirstKey(myHcs));
 printf ("%s\n", keyToPrint);             /* imprime 000000 */
 nextKey=HcsGetNextKey(myHcs, keyToPrint);
 free(keyToPrint);
 keyToPrint=strdup(nextKey);
 printf ("%s\n", keyToPrint);             /* imprime 000001 */
 nextKey=HcsGetNextKey(myHcs, keyToPrint);
 free(keyToPrint);
 keyToPrint=strdup(nextKey);
 printf ("%s\n", keyToPrint);             /* imprime 000002 */
Avec Buffer
 #include "Hcs.h"
  
 SxmlNode *myHcs;
 Buffer *bufKey;
 char *keyToPrint;

 myHfd=HcsImplicitHcs();
 bufKey=NewBuffer();
 keyToPrint=HcsGetFirstKeyBuffer (myHcs, bufKey);
 printf ("%s\n", keyToPrint;                          /* imprime 000000 */
 keyToPrint=HcsGetNextKeyBuffer (myHcs, bufKey);
 printf ("%s\n", keyToPrint);                         /* imprime 000001 */
 printf ("%s\n", HcsGetNextKeyBuffer (myHcs, bufKey)) /* imprime 000002 */