Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 26/02/2010, 22h39   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 25
Points : 2
Points : 2
Par défaut Passage de PIC X vers COMP-3

Bonjour,

J'ai une Variable dans un fichier en entrée de mon batch en PIX X(17)
Code :
1
2
"-0000000000256.35" ou 
" 0000000000256.35"
par exemple et j'aimerais la transformer en S9(13)V99.

Cdt,

Dernière modification par Hédhili Jaïdane ; 26/02/2010 à 23h36. Motif: Balise code pour la lisibilité des nombres donnés
mirc00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2010, 00h25   #2
Membre Expert
 
Avatar de Hédhili Jaïdane
 
Homme Hédhili Jaïdane
Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol
Inscription : juin 2007
Messages : 1 601
Détails du profil
Informations personnelles :
Nom : Homme Hédhili Jaïdane
Localisation : Tunisie

Informations professionnelles :
Activité : Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol

Informations forums :
Inscription : juin 2007
Messages : 1 601
Points : 2 066
Points : 2 066
Envoyer un message via Skype™ à Hédhili Jaïdane
Ce post a été édité pour rectification erreurs

Citation:
Envoyé par mirc00 Voir le message
Bonjour,

J'ai une Variable dans un fichier en entrée de mon batch en PIX X(17)
Code :
1
2
"-0000000000256.35" ou 
" 0000000000256.35"
par exemple et j'aimerais la transformer en S9(13)V99.

Cdt,
Bonjour.

Est ce que ces nombres sont dans le fichier en entrée tels que tu les donnes ou ça c'est l'affichage d'un display ?

S'ils sont réellement dans le fichier tels que tu les donnes :
- si tu as la fonction NUMVAL utilise la :
Code :
1
2
3
4
5
6
    03 Z1 PIC X(17).
....
01 Z2 PIC S9(13)V99.
....
MOVE FUNCTION NUMVAL(Z1) TO Z2.
- sinon redéfinis ta zone x(17) comme suit :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
    03 Z1 PIC X(17).
    03 Z11 REDEFINES Z1.
        05 Z1-S    PIC X.
        05 Z1-E    PIC 9(13)
        05 Z1-V    PIC X.
        05 Z1-D    PIC 99.
....   
01  Z2 PIC S9(13)V99.
....
     COMPUTE  Z2 = Z1-E + Z1-D / 100.
     IF Z1-S = "-" MULTIPLY -1 BY Z2.
ou encore mieux :
Code :
1
2
3
4
5
6
7
8
9
10
11
    03 Z1 PIC X(17).
    03 Z11 REDEFINES Z1.
        05 Z1-E    PIC S9(13) SIGN IS LEADING SEPARATE CHARACTER.
        05 Z1-V    PIC X.
        05 Z1-D    PIC V99.
   
01  Z2 PIC S9(13)V99.
           if Z1-E NEGATIVE
              Subtract Z1-D from Z1-E giving Z2
           else Add Z1-E Z1-D giving Z2.
Z2 peut être déclarée en comp-3.

PS : Cette discussion sera éventuellement déplacée dans le forum Cobol.
__________________

Hédhili Jaïdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2010, 13h26   #3
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 477
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 477
Points : 657
Points : 657
Bonjour

Si tu ne peux pas modifier le programme (ou en écrire un autre), tu peux utiliser DFSORT.
les mots clef à retenir, c'est SFF (Signed Free Form) et PD

la sysin du tri devrait ressembler à
Code :
1
2
3
OUTFIL OUTREC=(1,50,
           51,10,SFF,TO=PD,LENGTH=4,
           61,20)
La lecture des trucs est recommandée
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 19h28.


 
 
 
 
Partenaires

Hébergement Web