Comment convertir un fichier COBOL avec comp-3
ADegeneffe
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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.
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:
- Comp 3
- Ai suite 3 - Télécharger - Optimisation
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Imagen 3 - Accueil - Applications & Logiciels
- Zelda 3 - Accueil - Guide jeu vidéo
3 réponses
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 :
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
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 ?
Le fichier contenant des format X, 9 et comp-3, existe-t-il un outil qui me permet de le convertir ?
"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.
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.