Extraction d'une chaine

youdee -  
 youdee -
Bonjour,

je dispose d'un fichier txt sur lequel est enregistré, sur une même ligne des variables les unes à la suite des autres.

Mon souci est que la position de certaines variables est variable
Je m'explique:

Il y a trois types d'infos: le nombre d'unités médicale par lesquelles est passé la personne, le nombre de diag associés, le nombre d'actes.
exemple
si un patient est passé par 3 unités medicale, lors de son passage dans la premiere il y a eu 1 diag, 2 actes, dans la deuxieme, 1 diag et 1 acte et dans la troisieme 2 diag et 2 actes, les données seront saisies comme suit:
unité 1 - unite 2 - unite 3 - diag 1 de l'unite 1 - diag 1 de l'unite 2 - diag 1 de l'unite 3 - diag 2 de l'unite 3 - acte 1 de l'unite 1 - acte 2 de l'unite 1 etc

Pour extraire par exemple les actes (a la fin de la ligne) il faut donc trouver la position de départ qui change en fonction du nombre d'unites et d'actes
j'ai tenté une macro du style
%let i = nbrumb;
%let j = nbdasb;
%let k = nbab;
data "g:\sas\rum"; set "g:\sas\rum"; nba = substr(quit, 222 + &i*40 + &j*6, &k*22); run;
Mais il semblerait que la fonction substr ne prenne pas en considération des paramètres variables

comment faire ?

je vous remercie par avance de vos conseils

Arnaud
A voir également:

2 réponses

blux Messages postés 27992 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

quel langage ?
0
youdee
 
salut,

oui excuses moi avec SAS
0