Bonjour,
Pendant l'exécution de mon programme j'ai mis des messages prédéfinis (par un suffixe) dans le log.
exemple:
Je parcours ensuite le log afin de filtrer uniquement certains types de messages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 %put TITRE_UNICITY: TEST D''UNICITE; %put MESSAGE: mon message; %put MESSAGE: mon deuxième message; %put TITRE_INTEGRITY: TEST D''INTEGRITE;
J'aurais voulu ici effectuer un "case of" afin d'éviter des test inutiles.
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 data _null_; infile logfile truncover; input linetxt $90.; if &err=0 then do; /*case of = TITLE: UNICITY;*/ if index(linetxt,"MESSAGE:")>0 and index(linetxt,"put MESSAGE:")=0 then do; file result; res = substrn(linetxt,10,lengthc(linetxt)); put res; end; end; run;
En effet, si je sais que je suis sur un titre, je ne serai jamais sur un message. --> donc plus la peine de tester.
En plus, j'ai plusieurs titre et un ligne lue ne peut contenir qu'un seul titre à la fois.
Y a-t-i moyen d'éviter toute une imbrication de elseif?
En cherchant sur le net, je vois qu'un case when mais qui s'utilise avec du sql...
Partager