Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2010, 17h06   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 1
Points : 1
Par défaut Problème de reformatage d'enregistrements

Bonjour à tous,

Dans un JCL, je souhaite reformater les enregistrements d'un fichier comportant une zone (zone 2) de longueur inconnue.

Exemple du fichier en entrée:
..Zone1(Char17);Zone2(Char5)..;Zone3(Char20);
..Zone1(Char17);Zone2(Char10)..;Zone3(Char20);
..Zone1(Char17);Zone2(Char9)..;Zone3(Char20);
(les points sont des low-value et c'est ce que je cherche à supprimer)

Fichier en sortie:
Zone1;Zone2;Zone3;
Zone1;Zone2;Zone3;
Zone1;Zone2;Zone3;

J'ai essayé par SORT et IEBGENER mais j'ai l'impression que les deux imposent de définir la longueur de la zone ou la chaine de caractères à copier. Et je n'ai aucune de ses deux infos.

Auriez-vous une solution sans passer par un Rexx?
sigfried321 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 23h01   #2
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 096
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 096
Points : 1 704
Points : 1 704
Je verrai bien un OUTFIL avec un FINDREP moi ...

Par exemple :
Code :
1
2
3
4
5
6
7
8
9
//S2 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
...
...
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTFIL FINDREP=(IN=X’00’,OUT=C’’)
Non testé vu l'heure ...
Et demain absent du bureau (RTT) ...
Dîtes nous si ça fonctionne ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 06h42   #3
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 502
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 502
Points : 687
Points : 687
Bonjour

Tu complète la réponse de Luc Lorient avec cet exemple en changeant ENDBEFR de ' ' à ';'.
Tu devrais avoir un beau fichier en sortie
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 10h31   #4
Membre à l'essai
 
Inscription : février 2010
Messages : 31
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 31
Points : 23
Points : 23
Regarde le post ici : http://www.developpez.net/forums/d99...ement-fichier/

ca marche avec des zones fixes mais j'ai vu dans la doc qu'on pouvait faire cela avec des zones variables.
benchab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 00h47   #5
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 096
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 096
Points : 1 704
Points : 1 704
J'ai testé ma solution et elle semble fonctionner ...

Je ne pense pas qu'il souhaite aligner les zones dans son fichier mais juste supprimer les caractères à X'00' et donc l'opérateur PARSE ne me semble pas nécessaire ... Mais bon je peux me tromper ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 14h12   #6
Invité de passage
 
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 1
Points : 1
Bonjour à tous,

Désolé de répondre si tard mais je n'avais pas encore eu le temps de tester les solutions.
En effet Luc Orient, ta solution me suffit amplement.
De plus le PARSE n'aurai pas pu marcher car la zone 2 ne se finit pas par un point-virgule ou tout autre caractère prédéfini.

Merci à tous pour votre aide.
sigfried321 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h33.


 
 
 
 
Partenaires

Hébergement Web