Voici mon problème :
J'ai en entrée de mon programme un fichier csv dont les données sont séparés par un séparateur point virgule ';' et les données sont de longueurs variables.
Il faut supprimer les points virgules et mettre les données au format fixe.
Descriptif du fichier
Lorsque la donnée NB-ECHEANCE est valorisée à '003', j'ai la donnée composée TABLEAU renseignée 3 fois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 01 NOM PIC X(20) 01 PRENOM PIC X(20) 01 VILLE PIC X(32) 01 PAYS PIC X(10) 01 NB-ECHEANCE PIC 9(3) 01 TABLEAU OCCURS 120 05 MONTANT PIC S9(15) COMP-3 05 DATE PIC X(8)
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 NB-ECHEANCE = 3 MONTANT(1) = 5642 DATE(1) = 2010214 MONTANT(2) = 564897 DATE(2) = 20170201 MONTANT(3) = 6598741 DATE(3) = 20150206
si mon NB-ECHEANCE est valorisée à '010' alors j'ai les données MONTANT et DATE qui sont renseignées 10 fois.
Mon objectif est de supprimer les points virgules entre chaque données.
J'utilise l'ordre UNSTRING avec ENTREE-DATA qui correspond à la totalité de mon enregistrement
Mais je ne sais pas comment procéder pour supprimer les points virgules des données occursées MONTANT et DATE en fonction de ce qui est valorisé dans NB-ECHEANCE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UNSTRING ENTREE-DATA delimited by ";" into NOM PRENOM VILLE PAYS NB-ECHEANCE END-UNSTRING.
Merci pour votre aide.
Partager