Transfert de données vers des fichiers ASCII texte

Lorsque vous créez un fichier ASCII texte, les données provenant de l'iSeries, eServer i5 ou du System i5 changent comme suit :
  • Les champs hexadécimaux deviennent des caractères ASCII équivalents pour chaque demi-octet. Par exemple, X'D3' se développe en ASCII 4433 et est écrit dans le fichier. Lorsqu'elle est affichée par un éditeur ou imprimée, la chaîne apparaît sous la forme D3.
  • Les champs de caractères EBCDIC changent octet par octet et sont mappés dans des caractères ASCII tels que définis par les tables de traduction.
  • Les données de date, d'heure et d'horodatage sont mappées dans des caractères ASCII tels que définis par les tables de traduction.
  • Les champs de longueur variable et Null sont convertis en longueurs fixes, et des espaces de fin (pour les données de caractères, hexadécimales, de date, d'heure et d'horodatage) ou des zéros (pour les données binaires, étendues et condensées) sont ajoutés à la longueur maximale de le champ.
    Note : Certains caractères EBCDIC non affichables sont traduits en caractères ASCII de contrôle sur le workstation. Si les champs de caractères EBCDIC contiennent des données non affichables, vous risquez d'obtenir des résultats inattendus et votre fichier ASCII texte peut sembler corrompu.

    Par exemple, X'05' dans un champ EBCDIC est traduit par ASCII X'09', qui est un caractère ASCII de contrôle pour la tabulation horizontale. La plupart des éditeurs workstation texte traitent ce caractère de tabulation afin que les données de votre fichier workstation texte semble être décalé vers la droite lors de la visualisation.

    Une solution possible à ce problème consiste à définir ces champs sur le système hôte comme des champs hexadécimaux au lieu de champs de caractères.

  • Les champs binaires deviennent ASCII numérique. Par exemple, X'FFD3' sans position décimale se développe en ASCII 20202020202020202D3435. Lorsqu'elle est affichée par un éditeur ou imprimée, la chaîne apparaît sous la forme -45.
    Note : La longueur du champ ASCII dépend de la longueur du champ binaire.

    Un champ binaire sur l'iSeries, eServer i5 ou System i5 a une longueur de 2 ou 4 octets. La longueur du champ ASCII résultante est de 6 à 11 octets, signe compris. Un autre octet est ajouté pour un point décimal.

    Binary-to-ASCII Mappage de longueur de champ montre le mappage entre les longueurs de champs binaires et leurs longueurs ASCII.

Table 1. Binary-to-ASCII Mappage de longueur de champ
Longueur binaire ASCII Longueur Plage de valeurs
2 6 -32768 à 32767
4 11 -2147483648 à 2147483647
  • Les champs décimaux étendus sont remplacés par ASCII numérique. Par exemple, EBCDIC F0F0F9F5F2D6 avec une longueur de champ indiquant deux chiffres à droite du point décimal se développe en ASCII 20202D39352E3236. Lorsqu'elle est affichée par un éditeur ou imprimée, la chaîne apparaît sous la forme -95.26. La longueur du champ workstation résultante est égale à la longueur du champ système plus 1 pour le signe et 1 pour le point décimal, si spécifié.
  • Les champs décimaux compressés deviennent ASCII numérique. Par exemple, X'871D' (sans point décimal) devient ASCII 2D383731. Lorsqu'elle est affichée par un éditeur ou imprimée, la chaîne apparaît sous la forme -871.

    Puisque deux chiffres décimaux sont regroupés dans 1 octet, la longueur du champ workstation résultante est égale à deux fois la longueur du champ iSeries, eServer i5 ou System i5, plus 1 pour le point décimal (si spécifié). Cette longueur inclut toujours le signe. Un signe moins (-) indique un résultat négatif et un espace indique un résultat positif.