Utilisez SetElementProperty pour définir la taille d'un élément en se basant sur la valeur d'un autre élément dans un fichier plat.
Avant de commencer
Vous avez un fichier plat à utiliser comme document d'échantillon. Vous pouvez en créer un à partir des données d'échantillon fournies ci-dessous.
Pourquoi et quand exécuter cette tâche
Dans cet exemple, vous avez un fichier plat contenant trois éléments nommés a
, b
et c
. L'élément a
est un entier définissant la taille de l'élément b
. Puisque la taille peut varier, vous ne pouvez configurer de taille fixe dans les propriétés de l'élément b
. Cependant, vous devez définir sa taille pour indiquer où se termine l'élément b
et où débute l'élément c
.
Vous pouvez utiliser les données suivantes pour votre échantillon d'entrée :
03bbbcc
Procédure
-
Créez votre structure :
-
Dans l'éditeur Hierarchical Mapper, cliquez-droit sur Structures et sélectionnez .
-
Dans l'assistant qui s'ouvre, sélectionnez Create a new structure where you can manually enter elements et cliquez sur Next (Suivant).
-
Sélectionnez un dossier et saisissez le nom de la nouvelle structure, puis cliquez sur Next (Suivant).
-
Sélectionnez la représentation Flat Files et cliquez sur Next.
-
Cliquez sur Import a file as document et cliquez sur Next.
-
Parcourez votre système jusqu'au dossier correspondant et sélectionnez votre fichier plat, puis cliquez sur Finish.
-
Cliquez-droit sur la section à gauche de votre espace de travail et cliquez sur New Element (Nouvel élément) pour créer un élément racine.
-
Ciquez-droit sur l'élément racine et créez les trois éléments enfants nommés a, b et c.
Votre structure doit ressembler à ceci :
-
Cliquez sur l'élément a et saisissez 2 dans les champs Size Min/Max, puis sélectionnez Integer (32) dans la liste déroulante Data Type.
Cela indique que l'élément a est un entier avec une taille fixe de deux octets. Lorsque vous cliquez sur cet élément dans la structure, 03
est mis en valeur dans l'onglet Document.
-
Cliquez sur l'élément c et saisissez 2 dans les champs Size Min/Max.
Ces propriétés définissent une taille fixe pour l'élément
c, cependant il n'est pas mis en valeur dans l'onglet
Document, car il n'y a aucune information spécifiant où l'élément
b
se termine et où l'élément
c
commence.
-
Cliquez sur l'élément b et glissez-déposez une fonction SetElementProperty dans son onglet Util.
-
Double-cliquez sur la fonction SetElementProperty et sélectionnez Numbre of bytes dans la liste déroulante Property, puis cliquez sur OK.
-
Glissez-déposez l'élément a sur l'argument Value.
Cela indique que la taille de l'élément
b est égale à la valeur de l'élément
a.
Résultats
Votre structure est à présent configurée, lorsque vous cliquez sur l'élément
b, la valeur
bbb
est mise en valeur dans l'onglet
Document et
cc
est mise en valeur lorsque vous cliquez sur l'élément
c.