Bonjour,
je voudrais concaténer 2 fichiers avec overlay
1er fichier :
toto01
toto02
2eme fichier :
toto03
toto04
résultat voulu :
toto01 - toto03
toto02 - toto04
merci de votre aide.
Bonjour,
je voudrais concaténer 2 fichiers avec overlay
1er fichier :
toto01
toto02
2eme fichier :
toto03
toto04
résultat voulu :
toto01 - toto03
toto02 - toto04
merci de votre aide.
Bonjour,
il faut utiliser l'opérateur SPLICE
Un exemple dans http://www.developpez.net/forums/d13...-meme-fichier/
ouais !!!
tous ça n'est pas tres clair pour moi :car je n'ai besoin d'aucune condition
la premier ligne du fichier A doit aller en overlay avec celle du fichier B
Sans conditions, le SORT ne pourra rien pour toi.
Mais tu peux en créér une
1) copie du fichierA vers Abis, en ajoutant une colonne SEQNUM
2) idem pour le fichier B
3) faire un JOIN avec, comme clef, la colonne SEQNUM
et avec REFORMAT, crééer le nouveau fichier.
ca donnerai ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 // EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //SORTOUT DD DUMMY //FICA DD * LRECL=80,RECFM=FB TOTO1 TOTO4 //FICB DD * LRECL=80,RECFM=FB ZZZZ9 ZZZZ10 ZZZZ11 //FICABIS DD DSN=&ABIS,SPACE=(TRK,(1,1)),LRECL=85,RECFM=FB //FICBBIS DD DSN=&ABIS,SPACE=(TRK,(1,1)),LRECL=85,RECFM=FB //RESULT DD SYSOUT=*,LRECL=160,RECFM=FB //XXXXCNTL DD * SORT FIELDS=COPY OUTFIL OUTREC=(SEQNUM,5,ZD,1,80) //XOINCNTL DD * SORT FIELDS=COPY JOINKEYS F1=FICABIS,FIELDS=(1,5,A) JOINKEYS F2=FICBBIS,FIELDS=(1,5,A) JOIN UNPAIRED REFORMAT FIELDS=(F1:1,80,F2:1,80) //TOOLIN DD * COPY FROM(FICA) TO(FICABIS) USING(XXXX) COPY FROM(FICB) TO(FICBBIS) USING(XXXX) COPY JKFROM TO(RESULT) USING(XOIN)
@+
Bonjour,
la même avec SPLICE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 // EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //SORTOUT DD DUMMY //FICA DD * LRECL=80,RECFM=FB TOTO1 TOTO4 //FICB DD * LRECL=80,RECFM=FB ZZZZ9 ZZZZ10 ZZZZ11 //FICABIS DD DSN=&ABIS,DISP=(MOD,PASS),SPACE=(TRK,(1,1)) //RESULT DD SYSOUT=*,LRECL=165,RECFM=FB //CTL1CNTL DD * SORT FIELDS=COPY OUTFIL OUTREC=(SEQNUM,5,ZD,1,80,86:80X) //CTL2CNTL DD * SORT FIELDS=COPY OUTFIL OUTREC=(SEQNUM,5,ZD,6:80X,1,80) //TOOLIN DD * COPY FROM(FICA) TO(FICABIS) USING(CTL1) COPY FROM(FICB) TO(FICABIS) USING(CTL2) SPLICE FROM(FICABIS) TO(RESULT) ON(1,5,ZD) WITHANY KEEPNODUPS - WITH(86,80)![]()
résultat suivant :
en position 1 du fichier result : 00001
en position 86 du fichier result : TITI1
résulat attendu :
position 1 : TITI1
position 7 : toto1
![]()
Partager