|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 9 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : décembre 2007 Messages : 2 585 ![]() |
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. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 9 ![]() |
Waiting for details ...
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 15 ![]() |
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 ? |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 9 ![]() |
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 |
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : décembre 2007 Messages : 2 585 ![]() |
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. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 9 ![]() |
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 |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() Inscription : décembre 2007 Messages : 2 585 ![]() |
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 :
__________________
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. |
||
|
|
10
|
|
|
#9 |
|
Invité de passage
![]() Inscription : août 2012 Messages : 9 ![]() |
Merci beaucoup
|
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Julien GuiffroyIngénieur d'étude Mainframe Inscription : septembre 2012 Messages : 61 ![]() |
En JCL, c'est possible de le faire avec la carte EXEC PGM=SORT
Je te passerai un exemple demain ! ________________________________________ ________________________________________ Skylyn, |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com