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 16/11/2009, 13h27   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 149
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 149
Points : 224
Points : 224
Par défaut outrec et vb

Bonjour,

je sais comment tronquer les premières colonne d'un fichier VB avec SORT et OUTREC
mais cette fois, j'aimerais tronquer les dernière colonne du fichier et garder les première...

Et ça j'ai un peu de mal.

J'ai un fichier VB de 500 LRECL en entrée et j'aimerais avoir en sortie un fichier
VB de 255 mais avec les les 255 pemière colonne du fichier en entrée.

Je ne sais pas si je me suis bien fait comprendre...

Et tout cas merci d'avance.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2009, 15h25   #2
Membre expérimenté
 
Avatar de Homer-ac
 
Inscription : octobre 2007
Messages : 449
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 449
Points : 518
Points : 518
Bonjour,
Vérifie avec un OUTFIL de ce genre :
Code :
   OUTFIL FNAMES=SORTOUT,OUTREC=(1,259),VLFILL=X'00'
- 259 dans l'outrec et le LRECL pour tenir compte des 4 octets de longueur
- VLFILL=caractère de padding pour tenir compte des enreg. < 255

Si tu préfères du FB 255 en sortie :
Code :
   OUTFIL FNAMES=SORTOUT,VTOF,OUTREC=(5,255),VLFILL=X'00'
nb. Je suis reparti de l'idée de Bernard59139 dans un post précédant pour du VB, ce qu'il te manquait c'est probablement juste le VFILL pour les enregistrements plus petits que la longueur voulue.
Homer-ac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2009, 15h40   #3
Membre confirmé
 
Inscription : mars 2004
Messages : 1 149
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 149
Points : 224
Points : 224
March po...

SORTOUT : EXCP USED, LRECL = 255, BLKSIZE = 27998, TYPE = VB
259 BYTE VARIABLE RECORD IS LONGER THAN 255 BYTE MAXIMUM FOR SORTOUT
EF-BASE CB-K90014 F0-BASE E8-K44564
END OF DFSORT

du coup j'ai essayé avec :

OUTFIL FNAMES=SORTOUT,OUTREC=(1,255),VLFILL=X'00'


et là ça marche.

Mais quand je rentre en browse dans le fichier en sortie, tous les "blancs"
sont remplacés par des .......

En edit je ne vois pas les ......

bizarre.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2009, 15h52   #4
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 477
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 477
Points : 657
Points : 657
essaye

Code :
1
2
3
vlshrt
OUTFIL FNAMES=SORTOUT,OUTREC=(1,255)
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2009, 15h56   #5
Membre expérimenté
 
Avatar de Homer-ac
 
Inscription : octobre 2007
Messages : 449
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 449
Points : 518
Points : 518
Citation:
En edit je ne vois pas les ......
C'est sans doute les 00 binaires, utilises VLFILL=X'40' si tu veux des blancs en padding.
Je viens d'essayer, ça marche sans pb. Tu as quoi comme RECFM et LRECL en entrée ? Il te faut un LRECL plus petit ou égal en sortie ou tu crée un FB.
Si tu vois apparaitre des ..... un peu partout c'est que les longueurs d'enregistrements étaient souvent nettement inférieures à 255.

nb. En EDIT un 'HEX ON' te permet de visualiser les données en hexadécimal.

re nb. j'ai essayé avec une option VLSHRT sans succès, Si j'ai bien lu la doc, c'est plutôt pour les INCLUDE et OMIT COND. Je n'arrive à passer le SORT qu'avec VLFILL=c pour forcer le traitement des enregistrements plus petits que l'OUTREC. Ce qui n'est pas totalement satisfaisant car la longueur passe alors au maxi pour tous, sauf à 'ruser' en alliant VLFILL et VLTRIM.
Dans cet exemple
Code :
 OUTFIL OUTREC=(1,259),VLFILL=X'FF',VLTRIM=X'FF'
On ajoute un padding à high-value via VLFILL mais tout ce qui se termine par high-value est tronqué en sortie via VLTRIM. Il y a surement mieux mais je n'ai pas trouvé.

Dernière modification par Homer-ac ; 16/11/2009 à 17h39. Motif: VLFILL + VLTRIM
Homer-ac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2009, 12h33   #6
Membre confirmé
 
Inscription : mars 2004
Messages : 1 149
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 149
Points : 224
Points : 224
Super, ça marche nickel.

Merci.
sam01 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 +1. Il est actuellement 04h21.


 
 
 
 
Partenaires

Hébergement Web