Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > 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 ...

Réponse
 
Outils de la discussion
Vieux 18/09/2008, 16h57   #1 (permalink)
Membre éprouvé
 
Date d'inscription: mars 2004
Messages: 407
Par défaut rexx changer un mot par un autre

Bonjour,

pour chnager un ligne en rexx, je tape la commande suivante :

Code :
/*REXX*/ 
TRACE I                                  
ALIAS = PXXXXXX                          
FIC01 = '&VVENVIR.JCLLIB'                
FIC02 = CHANGE(FIC01,'&VVENVIR.',ALIAS)  
SAY FIC02



Mais le rexx se plante avec le message :

Incorrect call to routine

Le plantage se fait à cettte ligne :

FIC02 = CHANGE(FIC01,'&VVENVIR.',ALIAS)

savez-vous d'où cela peut venir?

Merci d'avance pour votre aide.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/09/2008, 10h51   #2 (permalink)
Membre Confirmé
 
Avatar de Homer-ac
 
Date d'inscription: octobre 2007
Localisation: région parisienne
Messages: 228
Par défaut

Citation:
FIC02 = CHANGE(FIC01,'&VVENVIR.',ALIAS)
?
Ecrit comme ça (parenthèses accolées), pour REXX CHANGE est une fonction.
Change n'est pas une fonction standard et donc REXX va tenter d'exécuter une fonction user, c'est a dire comme pour un CALL, vérifier si une routine CHANGE: est codée dans le REXX ou appeler un REXX externe. J'imagine que si tu a codé cette séquence, c'est qu'un REXX 'CHANGE' existe sur ton site. Il faut donc le retrouver et soit le recopier dans ton REXX, soit allouer le PDS qui le contient, usuellement en SYSUEXEC.
Code :
MYBIBREX = ????????????????
ADDRESS TSO                                                          
    "ALLOC DA('"MYBIBREX"','"BIBREXX2"') FILE(SYSUEXEC) SHR REUSE"            
    "ALTLIB ACTIVATE USER(EXEC)"
Sinon CHANGE existe en tant que macro EDIT, la syntaxe est la même que sous EDIT, il faut alors préciser au REXX qu'il s'agit d'une macro EDIT
Code :
address ISPEXEC "ISREDIT MACRO (PARM)"
Avant de coder son ordre change par exemple : 
"ISREDIT CHANGE '&VVENVIR.'" ALIAS". ALL WORD"
Enfin si tu veux modifier une ligne en REXX de base :
Code :
P1 = pos('&VVENVIR.',LALIGNE)
If P1 > 0 then LALIGNE = left(LALIGNE,P1-1)!!ALIAS!!substr(LALIGNE,P1+8)
Homer-ac est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/09/2008, 11h17   #3 (permalink)
Membre éprouvé
 
Date d'inscription: mars 2004
Messages: 407
Par défaut

Bonjour,

au fait je ne comptait pas utiliser une focntion externe.
je voulais changer une chaîne en rexx sans passer par la macro edit.
Donc ta deuxième solution me convient.

Merci.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS AUTRESAdaAlgoAssembleurBasicCobolFortranLaTeXMATLABPascalPerlPrologPurebasicRéseauRubySystèmesXMLRAD

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > z/OS



Outils de la discussion

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

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h15.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2009 www.developpez.com - Legal informations