|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 18 ![]() |
Bonjour,
Je souhaite utiliser la fonction INSPECT pour changer le format de date (ssaa-mm-jj) en (jj/mm/aa). Exemple : 2011-04-14 ==> 14/04/11 Sachant que la date ssaa-mm-jj est stocké dans une seule variable ZYE6-TEXTE1 Pourriez-vous m'aider SVP? Merci d'avance. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol Inscription : juin 2007 Messages : 1 789 ![]() |
Bonjour.
Si ta variable ZYE6-TEXTE1 est de type alphanum, tu peux faire par exemple si elle n'est pas déjà décomposée : Code :
Dans ce cas, indique nous le compilateur et l'OS. |
||
|
|
10
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 18 ![]() |
Bonjour,
En fait, j'ai réussi à trouver une solution Move DATE de ZYE6 dans DATE1 DATE1 DATE1-SS DATE1-AA DATE1-MM DATE1-JJ Et ensuite DATE1 dans DATE2 DATE2 DATE2-JJ DATE2-MM DATE2-AA DATE2-SS Move DATE2 dans ZYE6-TEXTE1 Déclaration des variables (Working) : VARIABLES DE FORMAT DATE 01 WR-DATE1. 05 WR-DATE1-SSAA. 10 WR-DATE1-SS PICTURE 9(02). 10 WR-DATE1-AA PICTURE 9(02). 05 WR-DATE1-FIL1 PICTURE X(01). 05 WR-DATE1-MM PICTURE 9(02). 05 WR-DATE1-FIL2 PICTURE X(01). 05 WR-DATE1-JJ PICTURE 9(02). 01 WR-DATE2. 05 WR-DATE2-JJ PICTURE X(02). 05 WR-DATE2-FIL1 PICTURE X VALUE "/". 05 WR-DATE2-MM PICTURE X(02). 05 WR-DATE2-FIL2 PICTURE X VALUE "/". 05 WR-DATE2-AA PICTURE X(02). Traitement (Procédure) : N ALIMENTATION VARIABLE DATE1 20 IT 1-ZYE6-TEXTE1 <>ZERO M 1-ZYE6-TEXTE1 WR-DATE1 N CHANGEMENT FORMAT DATE 25 IT WR-DATE1-FIL1 = "-" M WR-DATE1-JJ WR-DATE2-JJ M WR-DATE1-MM WR-DATE2-MM M WR-DATE1-AA WR-DATE2-AA M WR-DATE2 1-ZYE6-TEXTE1 N ALIMENTATION VARIABLE DATE1 30 IT 1-ZYE6-TEXTE2 <>ZERO M 1-ZYE6-TEXTE2 WR-DATE1 N CHANGEMENT FORMAT DATE 35 IT WR-DATE1-FIL1 "-" M WR-DATE1-JJ WR-DATE2-JJ M WR-DATE1-MM WR-DATE2-MM M WR-DATE1-AA WR-DATE2-AA M WR-DATE2 1-ZYE6-TEXTE2 ![]() Cordialement, |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol Inscription : juin 2007 Messages : 1 789 ![]() |
Au cas où ça t'aurait échappé :
Code :
|
||
|
|
10
|
|
|
#5 | |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2007 Messages : 12 ![]() |
Citation:
Inspect n'est pas adapté mais sert à changer des bribes de chaînes de caractères dans une chaîne. Pourquoi ne pas faire : string ZYE6-TEXTE1 (9:2) "/" ZYE6-TEXTE1 (6:2) "/" ZYE6-TEXTE1 (3:2) delimited by size into myString où myString pc x(8). C'est assez court... Cdlt |
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 15 ![]() |
Bonjour,
Je ne peux pas m'empêcher de répondre, avec du retard certes, mais bon... magnito, la solution que tu as trouvé n'est pas si simple ! tu utilises 2 zones intermédiaires inutiles ; DATE1 et DATE2. C'est visiblement une génération cobol d'un code écrit en pacbase. Ce que tu décrits ici en 30 ou 40 lignes dans cobol est écrit à l'origine dans pacbase de la façon suivante (1 ligne) : AD2 XY ZYE6-TEXTE1 ZYE6-TEXTE2 (X et Y correspondent au format de la date de dpéart et d'arrivée) Par pitié, n'utilise pas un généré cobol à partir de pacbase. C'est affreux !!! La solution la plus adaptée est sûrement celle de Hédhili Jaïdane. |
|
|
10
|
|
|
#7 | |
|
Membre du Club
![]() Jean Développeur Grands Systèmes IBM Inscription : août 2008 Messages : 37 ![]() |
Bonsoir,
Citation:
C'est diablement efficace comme générateur ! Pour des raisons de compatibilité (et aussi parce que l'équipe de Portnichet ne s'est pas trop investie), ça génère toujours du COBOL68 avec le point pour terminer les phrases, pas de END-xxx... donc plein de GOTO. IBM qui possède PACBASE le met à la retraite en 2015, le produit étant remplacé par RPPz qui fonctionne avec RDz (gamme Rational). Jean-Michel |
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 15 ![]() |
Bonjour Jean GVE,
Mon message est mal passée, désolée. Je ne critique absolument pas PACBASE. Ce que je vouilais dire, et je penses que tu vas être daccord avec moi, c'est qu'il ne faut pas utiliser le généré cobol. Le problème n'est pas que ce soit un cobol 68, 74, 85... car après tout, du cobol reste du cobol. Le problème c'est le code généré lui-même. Transformer le format d'une date ne nécessite pas de passer par 2 autres date. Bref, ce que je voulais dire, c'est qu'avant de s'inspirer d'un générer cobol à partir de PAC, il vaut mieux aller voir ailleurs. J'ai été formée à PAC en 92, et c'est une des premières choses qu'on nous a appris (va t'inspirer d'un DW ou un DO pour écrire du cobol Et comme toi, je regrette bien que pac soit retiré en 2015. Voilà, j'espère bien être plus claire maintenant. |
|
|
10
|
|
|
#9 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 166 ![]() |
Si si tu peux ...
En tout cas moi je le fais ... J'ai eu une expérience avec cet AGL au tournant des années 80 dans un contexte Bull GCOS8. C'était d'une lourdeur effarrante. Des écrans de saisie de programmes en TP ! Quand au COBOL généré, ça frisait l'illisibilité ... |
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() Inscription : décembre 2007 Messages : 2 581 ![]() |
Citation:
__________________
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
|
|
|
#11 | |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 15 ![]() |
C'est clair ! C'est pourquoi je disais à magnito de ne pas le prendre en exemple !
Citation:
) pendant plusieurs années, le travail du programmeur est bien simplifié. (gestion des synchros de fichiers, des ruptures, des fichiers, des boucles ...)Mais de toute manière, tout ça c'est bientôt fini. Et il faudra se débrouiller uniquement avec le généré cobol
|
|
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Julien GuiffroyIngénieur d'étude Mainframe Inscription : septembre 2012 Messages : 61 ![]() |
hum...
Notion de MOVE CORRESPONDING ? Exemple : 01 DATE1. 05 SS PIC X(2). 05 AA PIC X(2). 05 FILLER PIC X VALUE '-' 05 MM PIC X(2). 05 FILLER PIC X VALUE '-' 05 JJ PIC X(2). 01 DATE2. 05 MM PIC X(2). 05 FILLER PIC X VALUE '/' 05 JJ PIC X(2). 05 FILLER PIC X VALUE '/' 05 AA PIC X(2). MOVE '2011-01-01' TO DATE1. MOVE CORRESPONDING DATE1 TO DATE2. "CORRESPONDING" enverra la valeur des variable du groupe DATE1 vers les variables de DATE2 qui ont le même nom. Mais pour cela, c'est évident, il faut que les zones groupes aient les sous-variables avec le même nom, quelque soit l'ordre des variables. Magique COBOL ________________________________ ________________________________ Skylyn, |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com