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

Cobol Discussion :

[z/OS] Obtenir le LRECL d'un fichier ?


Sujet :

Cobol

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut [z/OS] Obtenir le LRECL d'un fichier ?
    Bonjour à tous,

    j'écris un programme qui peut prendre en input un fichier à LRECL quelconque.
    Pour cela, j'utilise dans la définition du fichier :
    RECORD CONTAINS 0 CHARACTERS, ce qui permet de ne pas spécifier le LRECL mais d'aller chercher automatiquement le LRECL à l'exécution dans le DCB du fichier.

    Le problème est que j'aimerais savoir quel est le LRECL du fichier que je lis.

    Il doit y avoir un moyen de le récupérer, soit directement via une instruction COBOL, soit une macro, soit une routine assembleur.

    Si quelqu'un a une idée.

    Merci beaucoup.

    Synthetis

  2. #2
    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
    Citation Envoyé par synthetis
    ...
    j'écris un programme qui peut prendre en input un fichier à LRECL quelconque.
    Pour cela, j'utilise dans la définition du fichier :
    RECORD CONTAINS 0 CHARACTERS, ce qui permet de ne pas spécifier le LRECL mais d'aller chercher automatiquement le LRECL à l'exécution dans le DCB du fichier ...
    A mon humble avis, ça ne sert à rien :
    "The DATA RECORDS clause is syntax checked, but it serves only as documentation for the names of data records associated with this file"

    Source : COBOL Language Reference
    DATA RECORDS Clause

    Le problème est que j'aimerais savoir quel est le LRECL du fichier que je lis.
    C'est un fichier avec des enregistrements de longueur fixe (FB) ou variable (VB) ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Luc Orient
    C'est un fichier avec des enregistrements de longueur fixe (FB) ou variable (VB) ?
    Ce sont des fichiers de longueur fixe (FB).
    Mais il faut que je connaisse la longueur du fichier d'entrée.
    C'est crucial parce que justement le but de mon programme c'est de faire du "data validation" sur les records en input.

    Merci!

    julien.

  4. #4
    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
    Citation Envoyé par synthetis
    Ce sont des fichiers de longueur fixe (FB).
    Mais il faut que je connaisse la longueur du fichier d'entrée.
    ça me semble difficile à faire en COBOL ...
    Si je me souviens bien, la longueur de l'enregistrement du fichier en entrée est déterminé a priori par le compilateur COBOL à partir du niveau 01 décrit en FD (File Description) dans la DATA DIVISION.
    Donc je vois mal comment procéder ...

    C'est crucial parce que justement le but de mon programme c'est de faire du "data validation" sur les records en input.
    Qu'appelez-vous "data validation" ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour les réponses.

    Par 'data validation' je veux dire que le but de mon programme est justement de vérifier que les records dans le fichier ont le bon format.
    C'est une sorte d'application qui va vérifier le format des fichiers en entrée (s'assurer qu'ils ont le bon format) avant de les envoyer vers d'autres applications en production.
    Ces autres applications n'ont pas joué sur la 'défensive', ce qui fait que si les records n'ont pas le bon format, l'application crash.
    D'où mon application qui va remédier à ce problème.

    Je pense vraiment qu'il y a moyen de le faire. En fait, j'ai lu qu'à l'exécution, le programme va chercher dynamiquement le LRECL dans le DCB du fichier (header du fichier). Donc, il le connait, et c'est comme ça qu'il peut fonctionner avec RECORD CONTAINS 0 CHARACTERS.
    Maintenant, il faut trouver le moyen de récupérer ce paramètre dans l'application. En effectuant des recherches j'ai vu qu'il était possible de le récupérer par une routine assembleur. Mais je ne suis jamais tombé sur un programme.

    Une idée?

    Merci.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Solution : faire un petit programme REXX, qui lui a des build-in functions pour récupérer les infos de DCB d'un fichier (LRECL, etc..).

    Faire un CALL dans le programme COBOL pour appeler le REXX.

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

Discussions similaires

  1. Comment obtenir l'îcone d'un fichier ?
    Par etrevilly dans le forum Langage
    Réponses: 3
    Dernier message: 11/05/2006, 16h14
  2. [VB.NET] Obtenir le nom d'un fichier
    Par eown dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/05/2006, 13h10
  3. Obtenir le hash d'un fichier en PHP ?
    Par ddubois dans le forum Langage
    Réponses: 1
    Dernier message: 26/04/2006, 12h01
  4. obtenir la durée d'un fichier audio
    Par cgodefrw dans le forum DirectX
    Réponses: 2
    Dernier message: 07/10/2004, 17h49
  5. [debutant][Fichier] Comment obtenir le path de mon fichier ?
    Par Soulsurfer dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 22/06/2004, 18h09

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