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 :

Recopié un fichier au format U en binaire sous ZOS


Sujet :

z/OS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut Recopié un fichier au format U en binaire sous ZOS
    Bonjour à tous,

    Ma question est très simple, est-ce que c'est possible en REXX ?

    Merci d'avance.

  2. #2
    Membre chevronné 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
    Par défaut
    La réponse est oui mais pas avec EXECIO qui n'autorise pas l'indéfini.
    Le plus simple est d'utiliser Library Management d'ISPF (LMINIT -> LMOPEN -> LMGET qui sait parfaitement lire de l'indéfini).

  3. #3
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut
    Merci, j'avou être une grosse buse en REXX et malheureusement je vais devoir en faire pas mal.

    Ca confirme bien ce que je pensais concernant l'EXECIO.

    Est ce que je pourrais abuser et demander si tu avais un exemple en 2 lignes ?

    Mes connaissances en REXX pour le moment se limitant à la lecture (Extrèmement agréable en livre de chevet) de la doc REXX pour ZOS.

    Merci d'avance.

  4. #4
    Membre chevronné 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
    Par défaut
    Voici un exemple de sous programme de lecture d'un fichier indéfini en REXX via LMGET. Il alimente un tableau pour réécriture d'un fichier en fixe pour une longueur maxi (ici 6144). Le paramètre DATALEN donne la longueur du bloc lu, le paramètre MAXLEN donne si on le veut, la longueur maxi de l'enreg. à lire.
    En l'occurrence il s'agit de la lecture d'un load module. Bien entendu si le fichier est un PS, le LMMFIND pour pointer sur le membre en directory ne sera pas codé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    LIRELOAD:     /* LECTURE DU LOAD MODULE */                            
    parse upper arg MBNAME MYLOAD .                                       
    MBLEN = 6144   /* VOIR QUELLE LONGUEUR MAXI EST UTILE */              
    RCD   = COPIES('00'X,MBLEN) ; LGRCD = 0 ; COUNTRCD = 0                
    Call on error                                                         
    Address ISPEXEC                                                       
    "LMINIT  DATAID(DAID1) DATASET('"MYLOAD"') ENQ(SHRW)"                 
    "LMOPEN  DATAID("DAID1") OPTION(INPUT)"                               
    "LMMFIND DATAID("DAID1") MEMBER("MBNAME")"                            
    Call off ERROR /* RC 8 en fin de LMGET */                             
    Do While RC = 0                                                       
       "LMGET DATAID("DAID1") MODE(INVAR) DATALOC(RCD) DATALEN(LGRCD)" ,  
                              "MAXLEN("MBLEN")"                           
       if RC = 0 then do                                                  
          COUNTRCD = COUNTRCD + 1                                         
          ENREG.COUNTRCD = LGRCD left(RCD,LGRCD) /* MEF Sortie */         
       end                                                                
       else do                                                            
          RC = 0 ; Leave                                                  
       end                                                                
    end                                                                   
    ENREG.0 = COUNTRCD                                                    
                                                                          
    ERROR:         /* On s'assure du close en cas de RC > 0 */            
    If RC > 0 then say 'CODE RETOUR' RC 'NON PREVU SUR LIGNE' SIGL        
    RCRET = RC                                                            
    "LMCLOSE DATAID("DAID1")"                                             
    "LMFREE  DATAID("DAID1")"                                             
    address TSO   
    Return RCRET

  5. #5
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut
    Encore merci

    Dernière question je pense

    On m'a spécifié de faire une copie binaire pour ne pas altérer le contenu du fichier qui pourait être en ascii.

    Est ce que cette notion est valable pour REXX ?
    Si oui, Est ce que c'est possible de faire une copie binaire en REXX ?
    Si non, je suppose que la copie sera strictement identique à l'originale ?

  6. #6
    Membre chevronné 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
    Par défaut
    REXX ne va pas altérer le contenu si on ne le change pas à l'écriture.
    Une remarque cependant si c'est une simple copie à l'identique du fichier :
    On peul le faire sans passer par un REXX. En fonction du tri installé sur site Sort IBM, CA-SORT, SYNC-SORT ... Certains peuvent prendre en compte un fichier indéfini via un SORT FIELDS=COPY et changer éventuellement le format en sortie. Pour une simple copie, une option DFDSS, de mémoire PROCESS(UNDEFINED), permet à présent de recopier ces fichiers.
    Enfin, si on veut écrire un programme, COBOL sait également lire un fichier indéfini.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut
    Merci pour tes réponses.

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

Discussions similaires

  1. Fichier au format binaire
    Par riadmims dans le forum R
    Réponses: 0
    Dernier message: 04/06/2012, 11h00
  2. Réponses: 22
    Dernier message: 24/04/2005, 16h49
  3. Charger fichiers au format milkshape
    Par ryu20 dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2005, 18h26
  4. [Fichier] génération format DOS
    Par Alexr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 13/01/2005, 17h30
  5. Afficher un fichier binaire sous Windows
    Par Atomikx dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 14/12/2004, 00h29

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