Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Invité de passage
    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 : 0
    Points
    0

    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 Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 035
    Points : 8 551
    Points
    8 551

    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
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    Waiting for details ...

  4. #4
    Candidat au titre de Membre du Club
    Inscrit en
    octobre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 15
    Points : 11
    Points
    11

    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
    Invité de passage
    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 : 0
    Points
    0

    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 Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 035
    Points : 8 551
    Points
    8 551

    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
    Invité de passage
    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 : 0
    Points
    0

    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 Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 035
    Points : 8 551
    Points
    8 551

    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 :
    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
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    Merci beaucoup

  10. #10
    Membre habitué
    Homme Profil pro Julien Guiffroy
    Ingénieur d'étude Mainframe
    Inscrit en
    septembre 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Guiffroy
    Âge : 28
    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 : 116
    Points
    116

    Par défaut

    En JCL, c'est possible de le faire avec la carte EXEC PGM=SORT
    Je te passerai un exemple demain !
    ________________________________________
    ________________________________________
    Skylyn,

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •