Comment convertir un fichier COBOL avec comp-3

Fermé
ADegeneffe Messages postés 2 Date d'inscription mardi 3 septembre 2013 Statut Membre Dernière intervention 4 septembre 2013 - 3 sept. 2013 à 14:04
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 4 sept. 2013 à 07:55
Bonjour.
Je suis en possession d'un fichier COBOL (sous Windows) d'un ancien système BS2000 avec des champs déclarés au format COMP-3.
Sous Windows, ce fichier est en partie illisible, là où il y a les comp-3.
Comment faire pour le rendre totalement lisible ?
D'avance merci.
A voir également:

3 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
3 sept. 2013 à 19:34
Le COMP-3 est un format à virgule fixe avec un chiffre par quartet (le dernier réservé au signe, C ou D).
Pour rendre les données lisibles il faudrait les convertir, par exemple en hexadécimal :

Exemples en PIC S9(5)V99 :

+123 : 00 12 30 0C
-456 : 00 45 60 0D
7.89 : 00 00 78 9C
0
ADegeneffe Messages postés 2 Date d'inscription mardi 3 septembre 2013 Statut Membre Dernière intervention 4 septembre 2013
4 sept. 2013 à 07:16
Je suis bien d'accord qu'il faudrait les convertir.
Le fichier contenant des format X, 9 et comp-3, existe-t-il un outil qui me permet de le convertir ?
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
4 sept. 2013 à 07:55
"Le fichier contenant des format X, 9 et comp-3"
Pas exactement, le fichier ne contient que des octets, c'est ensuite ton programme Cobol qui interprète les données comme étant telle ou telle donnée, on peut même parfois avoir des X en même temps que des 9, lorsque l'on utilise des REDEFINES par exemple. Ainsi la série d'octets "45 6D" peut aussi bien représenter les valeurs -4.56, -45.6, -456, ou "Em" selon que l'on ait un PIC S9V99 COMP-3, PIC S9(2)V9 COMP-3, PIC S9(3) COMP-3, ou PIC X(2) en ASCII.

En faitun fichier n'est jamais vraiment lisible autrement que par le fichier COBOL lui même, c'est pour ça que l'affichage en hexadécimal est une solution intermédiaire, cela permet de rendre lisible les données sans pour autant les interpréter, ce qui serait une gymnastique risquée...

Remarque : tu dis que tu arrives à lire sous Windows la partie PIC X, cela signifie que l'implémentation de COBOL utilises des caractères ASCII, ce n'est cependant pas la règle, les systèmes IBM utilisant par exemple l'EBCDIC, les PIC X seraient alors eux aussi illisibles, sauf en hexadécimal où leur interprétation serait immédiate.
0