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
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
A voir également:
- Comp-3 cobol
- Picasa 3 - Télécharger - Albums photo
- Ai suite 3 download - Télécharger - Optimisation
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Toutes les combinaisons possibles avec 3 chiffres ✓ - Forum Programmation
- +33 3 - Forum Mobile
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
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 :
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
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
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 ?
Le fichier contenant des format X, 9 et comp-3, existe-t-il un outil qui me permet de le convertir ?
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
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.
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.