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 28 29 30 31 32 33 34 35 36 37 38
|
/* REXX <= obligatoire sur la premiere ligne d'un rexx !! */
/* Algorithme : */
/* 1) Lire le fichier de DDNAME DDE1 */
/* Chaque enregistrement est charge dans un item E1. */
/* 2) Boucle sur l'ensemble des item E1. */
/* 3) Pour chaque item E1., */
/* 3a) si la chaine de caracteres correspondant a l'extraction de 4 */
/* caracteres depuis la 3eme position vaut 'Info' alors */
/* 3a1) incrementer le compteur de lignes */
/* 3a2) creer un nouvel item S1. valorise avec l'extraction des */
/* caracteres de E1 depuis le 3eme caractere */
/* 3b) sinon */
/* 3b1) determiner la position du signe '=' dans E1 */
/* 3b2) determiner la position de la premiere virgule dans E1 */
/* 3b3) concatener a l'item S1. cree en 3a2) une virgule et le contenu*/
/* de l'extraction de E1 depuis le signe = jusqu'a et y compris */
/* le dernier caractere avant la premiere virgule */
/* 4) Ecrire dans un fichier de DDNAME DDS1 tous les item S1. */
/******************************************************************************/
"Execio * DiskR DDE1 (Finis Stem E1." /* etape 1 */
l=0 /* initialiser a zero le compteur l */
Do i=1 To E1.0 /* E1.0 correspond au nombre d'item E1. */
If Substr(E1.i,3,4)='Info'
Then Do /* etape 3a */
l=l+1 /* etape 3a1 */
S1.l=Substr(E1.i,3) /* etape 3a2 */
End
Else Do /* etape 3b */
PosEq=Pos('=',E1.i) /* etape 3b1 */
PosV1=Pos(',',E1.i) /* etape 3b2 */
S1.l=S1.l','Substr(E1.i,PosEq,PosV1-1) /* etape 3b3 */
End
End
"Execio * DiskW DDS1 (Finis Stem S1." /* etape 4 */
Exit |
Partager