Discussion: outrec et vb

  1. #1
    Membre averti
    Inscrit en
    mars 2004
    Messages
    1 551
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 1 551
    Points : 359
    Points
    359

    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.

  2. #2
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 449
    Points : 576
    Points
    576

    Par défaut

    Bonjour,
    Vérifie avec un OUTFIL de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       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 : Sélectionner tout - Visualiser dans une fenêtre à part
       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.

  3. #3
    Membre averti
    Inscrit en
    mars 2004
    Messages
    1 551
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 1 551
    Points : 359
    Points
    359

    Par défaut

    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.

  4. #4
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    octobre 2006
    Messages
    869
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 869
    Points : 1 805
    Points
    1 805

    Par défaut

    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    vlshrt
    OUTFIL FNAMES=SORTOUT,OUTREC=(1,255)

  5. #5
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2007
    Messages : 449
    Points : 576
    Points
    576

    Par défaut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
     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é.

  6. #6
    Membre averti
    Inscrit en
    mars 2004
    Messages
    1 551
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 1 551
    Points : 359
    Points
    359

    Par défaut

    Super, ça marche nickel.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertir un VB en FB en le modifiant par OUTREC
    Par cnidaire dans le forum z/OS
    Réponses: 22
    Dernier message: 10/03/2014, 20h24
  2. OUTREC - Option inconnue
    Par Antichoc dans le forum Cobol
    Réponses: 4
    Dernier message: 30/09/2011, 00h10
  3. utilisation OUTREC OVERLAY
    Par bobspike dans le forum z/OS
    Réponses: 5
    Dernier message: 16/07/2009, 14h52
  4. OUTREC avec sort
    Par franck MVS dans le forum z/OS
    Réponses: 3
    Dernier message: 08/12/2008, 15h43
  5. ICETOOL - OUTREC conditionnel
    Par pike71 dans le forum z/OS
    Réponses: 4
    Dernier message: 23/10/2008, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo