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 :

Parcours et analyse de fichiers


Sujet :

Cobol

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Parcours et analyse de fichiers
    Bonjour,

    J'ai deux fichiers textes, l'un contenant des lignes écrites en cobol et l'autre contenant des lignes cobol aussi mais en plus il y a des numéros de patchs après chaque ligne.
    Exemple:
    ! 132535 12 PFINCUM-P9 PICTURE 9(02). DBI ! ADD/1/.../144606 !

    (en vert la ligne cobol et en rouge le numéro de patch)
    Serait-il faisable de créer un programme cobol qui permet de parcourir le premier fichier ligne par ligne et chercher les numéros de patchs correspondants (sachant que plusieurs lignes peuvent correspondre au même numéro de patch).
    Au final il faut obtenir un fichier contenant tous les numéros de patchs ainsi que les lignes du premier fichier qui n'ont pas de correspondances.

    Merci

  2. #2
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Oui(mais plus de détails plus tard, là, je suis pressé). En gros, il faut lire le code en format fixe(longueur 80), et traiter les 6 premiers caractères de chaque enregistrement. en détail plus tard.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Waiting for details ...

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    Tu veux faire quoi exactement ?

    Le fichier 1 est identique au fichier 2 avec en plus le numéro du patch dans le fichier 2 ou bien les 2 fichiers sont différents ?
    En fonction de ta réponse, le traitement n'est pas du tout identique.

    Rappelles-toi qu'une ligne cobol est composée de 4 parties :
    1 à 6 : numéro de ligne
    7 : type de ligne ( ,*, -, D, ...)
    8-72 : instruction
    73-80 : commentaire
    Est-ce qu'il te suffit de comparer le numéro de ligne ? ou bien l'instruction ? ou une partie de l'instruction ?

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Hello,

    Les deux fichiers ne sont pas identiques (le deuxième fichier contient, en plus des lignes du premier fichier, d'autres lignes en cobol et d'autres numéros de patchs correspondants).

    Le but est de parcourir le 1er fichier, chercher toute la ligne(donc de 1 à 80) dans le fichier 2 et récupérer le numéro de patch. Si la ligne n'a pas de correspondance il faut l'écrire telle quelle dans un fichier de sortie.
    Au final, je dois avoir un fichier contenant les différents numéros de patchs trouvés ainsi que les lignes qui n'ont pas de correspondances.

    J'espère que j'étais claire

  6. #6
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Pour être sur de bien comprendre :

    (1)est-ce que les lignes communes sont supposées être dans le même ordre?
    (2)tes numéros de patch sont bien dans les caractères 73 à 80?
    (3)est-ce le même fichier qui doit contenir les lignes absentes, ET les numéros de patch? Si oui, sous quels formats(parceque dans un cas on a 80 caractères, dans l'autre 8 caractères)?
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Hi again,

    1)-Non, les lignes communes ne sont pas dans le même ordre
    2)-Mes numéros de patchs sont dans les caractères 95 à 100.
    3)-le premier fichier contient uniquement des lignes cobol de 1 à 80 (pas de num de patchs),
    le deuxieme fichier contient des lignes cobol de 1 à 80 suivi de numéros de patchs de 95 à 100.

    le but c'est de parcourir le fichier 1 ligne par ligne, chercher chaque ligne dans le fichier2, si on la trouve on récupère le numéro de patch et on l'écrit dans un nouveau fichier 3, si on la trouve pas on écrit la ligne non trouvée dans le fichier 3.
    au final, le fichier 3 doit contenir les différents numéros de patchs récupérés ainsi que les lignes du fichier 1 qui n'ont pas été trouvées dans le fichier 2.

    Voilà
    Merci

  8. #8
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Hum; Si les volumétries sont raisonnables, je propose de lire tout le deuxième fichier, de le mettre en mémoire, puis de lire le premier fichier ligne à ligne. A chaque ligne, on cherche dans la mémoire. Si en plus on a trié avant, on peut faire une dichotomie.

    Sinon, si c'est massif(un nombre de lignes à 6 chiffres, voire plus), il faut faire un VSAM, et là, ça dépasse mes compétences.

    Dans le premier cas, il y a ici un exemple de lecture de deux fichiers. A toi de l'adapter, sachant que tu n'as pas à t"embêter avec la rupture : tu lis tout le second fichier avant d'attaquer le premier. Par contre, lors de la lecture du premier, il te faut le mettre dans un tableau du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    01  TABLE-SECOND-FICHIER.
        05  LIGNE-SECOND-FICHIER OCCURS 99999.
            10  LIGNE-SECOND-FICHIER-80 PIC X(80).
            10  FILLER PIC X(15).
            10  LIGNE-SECOND-FICHIER-NPATCH PIC X(05).
    Puis, à chaque enregistrement du premier fichier, parcourir cette table.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur d'étude Mainframe
    Inscrit en
    Septembre 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur d'étude Mainframe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 61
    Points : 124
    Points
    124
    Par défaut
    En JCL, c'est possible de le faire avec la carte EXEC PGM=SORT
    Je te passerai un exemple demain !
    ________________________________________
    ________________________________________
    Skylyn,

Discussions similaires

  1. [win32]API d'analyse du fichier Host ?
    Par Laurent Dardenne dans le forum Développement
    Réponses: 2
    Dernier message: 02/11/2005, 21h20
  2. [Info]Parcours de l'arborescence fichier des postes clients
    Par klael dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 16/09/2005, 09h38
  3. Commande pour analyser un fichier avec lex et yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 13/09/2005, 19h12
  4. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27

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