Extraction d'une chaine
youdee
-
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
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:
- Extraction d'une chaine
- Chaine tnt gratuite sur mobile - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Plus de chaine tv - Guide
- Chaine musique bouygues - Accueil - Guide TV et vidéo
- L'équipe live foot chaine - Accueil - TV & Vidéo