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 27/05/2011, 16h56   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Par défaut Change et numéro de ligne

Bonjour,

est-il possible de faire un CHANGE en edit sur une ligne bien spécifique. La ligne 200 d'un fichier séquentiel par exemple.
Il me semble qu'avec les labels, c'est un bloc de ligne que ça sélectionne et pas une ligne bien spécifique....

merci d'avance pour votre aide.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 17h43   #2
Membre du Club
 
Inscription : novembre 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 142
Points : 55
Points : 55
Bonjour,

Code :
1
2
3
4
5
6
7
8
9
Command ===> c '5A01' '7G01' .a .b
****** ***************************** Top of Data
000001 5A0100000000000060100000000000000000001412
000002 5A0100000000000060100000000000000000001412
000003 5A0100000000000060100000000000000000001412
000004 5A0100000000000060100000000000000000001412
.A     5A0100000000000060100000000000000000001412
.B     5A0100000000000060100000000000000000001412
****** **************************** Bottom of Dat
changé la ligne 5 seulement 5A01 avec 7G01

Code :
1
2
3
4
5
6
7
8
****** ***************************** Top of Data ******
000001 5A0100000000000060100000000000000000001412000000
000002 5A0100000000000060100000000000000000001412000000
000003 5A0100000000000060100000000000000000001412000000
000004 5A0100000000000060100000000000000000001412000000
000005 7G0100000000000060100000000000000000001412000000
000006 5A0100000000000060100000000000000000001412000000
****** **************************** Bottom of Data ****

mais il y a une autre methode mais avec BIB100, si tu veux je te donne le BIB100
a_karim_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 09h40   #3
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Merci.

Mais qu'est ce que c'est BIB100 ?
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 09h54   #4
Membre du Club
 
Inscription : novembre 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 142
Points : 55
Points : 55
C’est l'assembleur, exemple ici je veux changer seulement la ligne 5
Contient la valeur 5A et je veux le remplacé par 6B alors la résultat est :

Code :
1
2
3
4
5
6
7
8
9
10
Command ===>                                                  S
=COLS> ----+----1----+----2----+----3----+----4----+----5----+-
****** ***************************** Top of Data **********
000001 5A010000000000006010000000000000000000141200000000000151
000002 5A010000000000006010000000000000000000141200000000000151
000003 5A010000000000006010000000000000000000141200000000000151
000004 5A010000000000006010000000000000000000141200000000000151
000005 5A010000000000006010000000000000000000141200000000000151
000006 5A010000000000006010000000000000000000141200000000000151
****** **************************** Bottom of Data *********
Assembleur :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
MODIF   CSECT
        USING *,9
        CP NB,=PL8'5'
        BE MODI
        BNE ECRIT
MODI    MVC 0(2,11),=C'6B'
        AP NB,UN
        BR 14
ECRIT   AP NB,UN
        BR 14
NB      DC PL8'1'
UN      DC PL8'1'
        END

Résultat :
Code :
1
2
3
4
5
6
7
8
****** ***************************** Top of Data ************
000001 5A010000000000006010000000000000000000141200000000000151
000002 5A010000000000006010000000000000000000141200000000000151
000003 5A010000000000006010000000000000000000141200000000000151
000004 5A010000000000006010000000000000000000141200000000000151
000005 6B010000000000006010000000000000000000141200000000000151
000006 5A010000000000006010000000000000000000141200000000000151
****** **************************** Bottom of Data **********
a_karim_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 15h02   #5
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
OK, merci pour l'info.

Le souci que j'ai avec l'histoire des label, c'est qu'avec ta méthode, si j'effectue un RCHANGE (repeat change), il me modifie la ligne 6 alors que je ne veux pas que la ligne 6 soit prise en compte...

Je te remercie pour le code assembleur, mais pour l'instant que je préfère que limiter aux commandes éditeurs.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 15h13   #6
Membre du Club
 
Inscription : novembre 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 142
Points : 55
Points : 55
Mais avec Assembleur tu peux modifier toutes les lignes sauf la ligne 6.
a_karim_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 16h05   #7
Membre habitué
 
Inscription : janvier 2008
Messages : 123
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 123
Points : 144
Points : 144
tu peux utiliser EXCLUDE pour exclure toutes les lignes que tu ne veux pas modifier , via la commande de ligne X, ou de bloc XX ou X<nbr de ligne>

puis passer la commande

C 'xx' 'yy' NX ou NX indique que ton change ne se fait que sur les lignes non exclues
xfanx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 09h54   #8
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Merci xfanx pour ton idée.

Mais j'ai bien que ça ne me serve pas dans mon cas bien particulier.

Je t'explique, en macro edit je fait un find de la ligne voulue (ou plus exactement une partie de la ligne), ensuite je fais un tzest pour vérifier si cette ligne contient un caractère spécifique et si ces deux conditions sont validées,
j'effectue le change de la ligne.

Dans ta proposition, il faudrait que je puisse exclure la ligne sur laquelle se trouve le curseur. Et il me semble que la commande exclude fonctionne avec des bornes (label). On en revient au même problème qu'ai début : Est-il possible d'exclure un ligne avec la position du curseur ou en connaissant le numéro de ligne...
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 13h27   #9
Membre habitué
 
Inscription : janvier 2008
Messages : 123
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 123
Points : 144
Points : 144
pour moi, tu n'as rien de particulier à faire.
le fait d'avoir d'abord fait un FIND a positionné le curseur sur la ligne.
si tu enchaines un CHANGE simple, celui ci se fera sur la ligne ou est ton curseur et uniquement sur celle ci
xfanx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h53   #10
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Oui tu as raison Je dois d'abord faire un exclude all avant.

Merci xfanx pour cette astuce.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h10.


 
 
 
 
Partenaires

Hébergement Web