Rechercher : dans
Par :

Macro SAS paramètre dans nom de fichier

Dernière réponse le 28 jan 2008 à 14:55:29 fabienne35, le 28 jan 2008 à 12:18:09 
 Signaler ce message aux modérateurs

Bonjour,
une nouvelle fois j'ai besoin d'aide pour une macro :
%let an=07
%macro test;
%do jour= 01 %to 31;
%do mois= 01 %to 12;
data sd01;
set mabase&jour&mois&an;
where a='A';
run;
data sd;
set sd sd01;
run;
%end;
%end;
%mend;

%test;

les noms de mes fichiers sont du type mabase040507 j'ai essayé :

%let an=07
%macro test;
%do jour= 1 %to 9;
%do mois= 1 %to 9;
data sd01;
set mabase0&jour0&mois&an;
where a='A';
run;
data sd;
set sd sd01;
run;
%end;
%end;
%do jour= 10 %to 31;
%do mois= 10 %to 12;
data sd01;
set mabase&jour&mois&an;
where a='A';
run;
data sd;
set sd sd01;
run;
%end;
%end;
%mend;

%test;

Mais ça ne marche pas à cause du 0 entre &jour et &mois. Y-at-il un moyen de le forcer à mettre mon 0 ?
ou alors j'insère %let z='0' &jour&z&mois ?

Merci de l'aide que vous pourrez m'apporter.

Fabienne

Meilleures réponses pour « Macro SAS paramètre dans nom de fichier » dans :
[Excel] Chemin et nom de stockage de feuille de calcul VoirIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre...
[MS-Dos] Lister le contenu d'un répertoire dans un fichier VoirIl peut s'avérer pratique d'effectuer le listage d'un ou plusieurs répertoires dans un fichier, afin de tenir par exemple un catalogue de fichiers. Sous MS-Dos (ou sous Windows en ouvrant une fenêtre d'invite de commande MS-Dos) il est possible...
Renommer plusieurs fichiers en batch VoirLe fait de renommer un grand nombre de fichiers peut très vite devenir fastidieux. Heureusement, il existe des outils permettant d'automatiser cette tâche dans un grand nombre de cas : Fonctionnalités natives Utilisation d'un programme...
Oracle - Les fichiers d'une base Oracle VoirLes fichiers physiques d'une base Oracle Les fichiers physiques d'une base Oracle permettent de stocker de manière persistante les données manipulées par Oracle, tandis que la mémoire sert à optimiser la vitesse de fonctionnement de la base de...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
Fichiers et répertoires VoirLes fichiers sous DOS Sur un ordinateur les informations sont stockées dans des fichiers. Lorsqu'on exécute un programme, MS-DOS traite les informations situées dans le fichier et les transmet au système. Sous MS-DOS chaque fichier peut être aussi...

1

steelspirit, le 28 jan 2008 à 13:47:09

Bonjour,

Voici la solution :

remplacer set mabase&jour&mois&an;
par
set mabase%sysfunc(putn(&jour,z2.))%sysfunc(putn(&mois,z2.))&an;

on utilise ici le format z2. qui met un 0 devant si la valeur est sur 1 caractère. Pour appliquer le format dans une macro on utilise %sysfunc et putn qui applique le format à la volée.

Steel

- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah Ah Ah !

Répondre à steelspirit

2

 fabienne35, le 28 jan 2008 à 14:55:29

Merci pour la réponse.


Du coup mon pg devient :
%let an=07
%macro test;
%do jour= 01 %to 31;
%do mois= 01 %to 12;
data sd01;
set mabase%sysfunc(putn(&jour,z2.))%sysfunc(putn(&mois,z2.))&an;
where a='A';
run;
data sd;
set sd sd01;
run;
%end;
%end;
%mend;

%test;

Répondre à fabienne35
Collection CommentÇaMarche.net