IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

z/OS Discussion :

Dépacker des zones via un sort


Sujet :

z/OS

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut Dépacker des zones via un sort
    Bonjour à tous,

    Je souhaiterai dépacker des zones d'un fichier via un sort mais j'ai beau chercher sur le net ou sur le site d'IBM, je ne trouve rien qui fonctionne.
    Si par exemple, mon fichier contient (les lignes 2 et 3 correspond à l'édition en hexa)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ..îÌ[BLABLIBLO
    13579
    24680
    je voudrais en sortie pouvoir avoir
    1234567890BLABLIBLO

    J'ai essayé ceci mais ca ne fonctionne pas du tout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SORT FIELDS=COPY                     
    OUTREC BUILD=(1,5,PD,TO=PD,LENGTH=10,
                  6,3,PD,TO=PD,LENGTH=06)
    D'avance merci à ceux qui prendront le temps de m'aider.


    Bonne journée.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Bonjour

    je vais te donner une piste.
    Ton essai transforme une zone PD de 5 de long, en une zone PD de 10 de long.

    suffit de changer le format de la zone de sortie.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Je rajouterais aussi que le PD en entrée devrait avoir le signe en dernière position...

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Bonjour
    j'ai vérifier, et désolé, j'avais répondu beaucoup trop vite.

    les zones de ton fichier en entrée ne sont pas en PD (packed décimal signed) mais en Binaire équivalent cobol "PIC 9(x) comp".

    Pour avoir les zones en "clair", c'est assez simple, :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     SORT FIELDS=COPY             
     OUTREC FIELDS=(1,5,HEX,........)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par bernard59139 Voir le message
    Bonjour
    j'ai vérifier, et désolé, j'avais répondu beaucoup trop vite.

    les zones de ton fichier en entrée ne sont pas en PD (packed décimal signed) mais en Binaire équivalent cobol "PIC 9(x) comp".

    Pour avoir les zones en "clair", c'est assez simple, :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     SORT FIELDS=COPY             
     OUTREC FIELDS=(1,5,HEX,........)
    Ca ne marche pas, j'ai un abend user 0007...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5
     SORT FIELDS=COPY                                  
     OUTREC FIELDS=(1,5,HEX,ZD,LENGTH=10)              
                             $                         
    SYNTAX ERROR

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Ne cherche pas à faire trop bien, code juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     OUTREC FIELDS=(1,5,HEX)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    En fait, j'ai réussi à avoir un code retour 0 mais le résultat n'est pas probant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .. F....o..îÌ[
    004C0001913579
    01060018624680

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Autant pour moi il ne s'agissait pas de comp-3 en entrée...

    Concernant ton output, peux-tu copier ici ton outrec car ce que t'as donné bernard59139 devrait fonctionner.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SORT FIELDS=COPY           
             
       OUTREC FIELDS=(1,5,HEX)
    et j'obtiens ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    000140C600000
    FFFFFFCFFFFFF
    0001403600000

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Etonnant...

    Questions bêtes :

    * tu as bien un FB en entrée ?
    * ton champ "..îÌ[" est bien en position 1 dans ton fichier d'entrée ?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par ekans Voir le message
    Etonnant...

    Questions bêtes :

    * tu as bien un FB en entrée ?
    * ton champ "..îÌ[" est bien en position 1 dans ton fichier d'entrée ?
    Oui aux 2 questions!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Désolé mais je sèche.
    Déjà, pour moi, il me parait difficile d'avoir une longueur de 13 en sortie en précisant que l'entrée est sur 5.

    Sinon peux-tu essayer ça et me confirmer que tu obtiens 1234567890 dans la sysout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //STEP01  EXEC PGM=SORT  
    //SYSOUT  DD SYSOUT=*    
    //SORTIN  DD *           
      îÌ°TOTOTO              
    //SORTOUT DD SYSOUT=*    
    //SYSIN   DD *           
      OPTION COPY            
      OUTREC FIELDS=(1,5,HEX)
    /*

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    dans ton fichier en entrée, tu as x'000140C6', ca ne correspond à rien de ce que je connais.

    si tu as le descriptif cobol, j'essayerai de répondre. Au pire, ce que tu veux en sortie.

  14. #14
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Pour moi et dans l'exemple qui est donné, il manque la représentation du signe.

    Je dirais que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1  A  PIC 9(10) PACKED-DECIMAL
    
    MOVE 1234567890 TO A
    devrait se représenter par :

    X'F' voulant dire non signé.

  15. #15
    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 : 586
    Points
    586
    Par défaut
    Je viens de vérifier, la réponse d'Ekans est appropriée et donne bien le résultat attendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //S0010    EXEC PGM=SORT                         
    //SYSOUT   DD SYSOUT=*                           
    //SORTIN   DD DISP=SHR,DSN=.............
    //SORTOUT DD SYSOUT=*,LRECL=80,RECFM=FB                     
    //SYSIN    DD *                                  
      SORT FIELDS=COPY                       
      OUTREC FIELDS=(1,5,HEX,6,9)                    
    //*

Discussions similaires

  1. Comment lier des zones de liste via VBA ?
    Par Jordel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 16h38
  2. Uploader des fichiers via ssh
    Par Michaël dans le forum Réseau
    Réponses: 3
    Dernier message: 13/05/2005, 20h47
  3. Récupérer des données via le port usb
    Par matmuth dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/05/2005, 16h34
  4. Réponses: 7
    Dernier message: 20/03/2005, 14h53
  5. [FLASH MX2004 ] Définir des "zones cliquables"
    Par chodaboy34 dans le forum Flash
    Réponses: 3
    Dernier message: 07/11/2004, 18h58

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