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 03/03/2010, 11h37   #1
Invité de passage
 
Inscription : juillet 2009
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 15
Points : 3
Points : 3
Par défaut Rexx suppression d'un caractère particulier

Bonjour,

Je n'y connais pas grand chose en REXX.

Je dois récupérer des données dans un fichier et les additionner. Le problème c'est que mon fichier d'origine est en valeur anglaise et le séparateur de millier est une virgule (quand le REXX a été écrit le millier n'était pas atteint). Ce qui me donne un joli "Bad arithmetic conversion"

Si je remplace la virgule par un point, mon chiffre devient un nombre décimale (1,585 -> 1.58) alors qu'il n'y a que des entiers.

ma colonne commence au caractère 44 pour 7 de long.
VALEUR1=TRANSLATE(SUBSTR(LECT.1,44,7),'.',',')

Je n'ai pas trouvé la fonction qui me premettrait de supprimer la virgule sur une chaine de caractère. Car lorsque je mets :

VALEUR1=TRANSLATE(SUBSTR(LECT.1,44,7),'',',')
ou
VALEUR1=DELSTR(SUBSTR(LECT.1,44,7),47,1)
j'ai de nouveau "Bad arithmetic conversion"

Merci par avance
nadegel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2010, 12h12   #2
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

Un joyeux mélanges de fonctions, pas terrible.

Personnellement, je ferais:

Code :
1
2
3
4
mazone1=SUBSTR(LECT.1,44,7)
mazone2=translate(mazone1,'',',')     
valeur1 = space(mazone2,0)

Dernière modification par bernard59139 ; 03/03/2010 à 12h21. Motif: modif code
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2010, 14h29   #3
Invité de passage
 
Inscription : juillet 2009
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 15
Points : 3
Points : 3
Merci
nadegel 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 04h38.


 
 
 
 
Partenaires

Hébergement Web