Bonjour,
Je dois créer un programme en COBOL pour faire de la mise en forme de données de longueur fixe en longueur variable en supprimant les espaces non significatifs pour avoir en sortie un fichier csv dont les séparateurs entre chaque donnée est un pipe '|'.
Pour la donnée MONTANT, lorsque celle-ci est valorisée à 9999999.99, cela signifie qu'en sortie il ne faudra rien mettre.
Pour les autres valeurs autre que 9999999.99, il faudra supprimer les zéro non significatifs de la partie entière et conserver 2 décimales même si celles-ci sont à 0.
Mêmes règles pour la donnée TAUX, lorsque celle-ci est valorisée à 99.999, cela signifie qu'en sortie il ne faudra rien mettre.
Pour les autres valeurs autre que 99.999, il faudra supprimer les zéro non significatifs de la partie entière et conserver 3 décimales même si celles-ci sont à 0.
Voici la description de mon fichier en entrée du programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 05 NOM PIC X(20). 05 FILLER PIC X(01) VALUE '|'. 05 PRENOM PIC X(15). 05 FILLER PIC X(01) VALUE '|'. 05 TELEPHONE PIC X(20). 05 FILLER PIC X(01) VALUE '|'. 05 CODE POSTAL PIC X(10). 05 FILLER PIC X(01) VALUE '|'. 05 ADRESSE PIC X(30). 05 FILLER PIC X(01) VALUE '|'. 05 MONTANT. 10 MT-ENTIERE PIC 9(07). 10 FILLER PIC X(01) VALUE '.'. 10 MT-DECIMAL PIC 9(02). 05 FILLER PIC X(01) VALUE '|'. 05 TAUX. 10 TAUX-ENTIERE PIC 9(02). 10 FILLER PIC X(01) VALUE '.'. 10 TAUX-DECIMAL PIC 9(03). 05 FILLER PIC X(01) VALUE '|'.
Exemple de fichier en entrée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DUBOIS |JEAN | 09 17 23 56 19 | 93510 | 2 RUE DES CHAMPIGNONS |9999999.99|99.999| DUJARDIN |PIERRE |0353521236 |56230 | 16 CHE. DES OLIVIERS |0000235.00|00.100|
Résultat attendu en sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DUBOIS|JEAN|09 17 23 56 19|93510|2 RUE DES CHAMPIGNONS||| DUJARDIN|PIERRE|0353521236|56230|16 CHE. DES OLIVIERS|235.00|0.100|
Comment faire pour écrire ce programme de mise en forme ?
Partager