|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Bonjour,
Je m'embrouille J'ai une macro qui récupère le répertoire courant de l'exécution du programme. (J'ai le path et le nom du fichier est retiré) Code :
Je voudrais utiliser cette valeur avec l'instruction %include avant j'avais le code suivant: qui allait me rechercher le code du programme Initialization.sas J'ai du changer de répertoire et j'aurais voulu pouvoir faire ceci: Mais SAS n'est pas très content. Quelqu'un peut-il m'aider? Merci |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Il te manque les quotes je pense
et Initialization ne serait pas Initialization.sas? |
|
|
00
|
|
|
#3 | ||
|
Invité(e)
Messages : n/a ![]() |
bonjour;
Code :
|
||
00
|
|
|
#4 | ||||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
Il y a en fait 3 syntaxes pour %INCLUDE : - %INCLUDE nomProgramme ; que tu utilisais jusqu'à présent. Elle ne fonctionne qu'en sous-entendant le répertoire, c'est à dire que SAS cherche dans son répertoire par défaut (en bas à droite de la session sur SAS Windows). Et ne fonctionne que si tu n'as aucun caractère "spécial" dans ton nom de programme, par exemple des tirets feront planter. - %INCLUDE pgm ; avec PGM le nom logique associé à une instruction FILENAME préalable. Dans ton cas ça donnerait : Code :
Bon courage. Olivier @Julie : 2 remarques sur ton (très joli) code. La première c'est que tu récupères exactement la même info qu'avec %sysget(SAS_EXECFILEPATH). La 2e c'est que dans la proc SQL, on a intérêt à attaquer les vues DICTIONARY équivalentes à celles de la SASHELP. Car en fait, la SASHELP fait des vues vers les vues DICTIONARY ! Code :
|
||||
|
|
10
|
|
|
#5 | |||
|
Invité(e)
Messages : n/a ![]() |
Citation:
Merci Olivier. On apprend toujours . Mais je me disais que pour une vue sur les tables de SASHELP sont tellement trop petites qu'il n'y a pas de différence entre interroger une table ou une vue. Mais personnellement j’opte pour la solution N°1 c'est-à-dire avec le %sysget ( moins de code et même résultat ) Merci encore Olivier. Julie. |
|||
00
|
|
|
#6 | ||||
![]() ![]() Stéphane Consultant et formateur SAS et Cognos Inscription : avril 2009 Messages : 1 791 ![]() |
J'utilise une autre syntaxe pour l'include.
Code :
Code :
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !Moteur de recherche dans les papiers SAS |
||||
|
00
|
|
|
#7 | ||||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Bonjour!
Merci à tous pour vos réponses! ![]() J'ai opté pour la solution de datametric et olivier (%include pgm). (en fait c'est exactement celle que je voulais atteindre hier mais je me suis trop embrouillé à force d'avoir trop essayé Comme je dois faire plusieurs include dans le code, je trouve cette solution plus visible plutôt que d'aller chercher dans la chaîne de caractères... --> C'est juste une question de goût @Tous merci pour ces explications. C'est toujours impressionnant ce qu'on apprend en postant sur ce forum.(Je ne savais pas par exemple qu'il y avait différentes possibilités pour utiliser un %include.) @megamind De ce que j'avais lu, l'utilisation du *.sas n'était pas obligatoire. (Mais je ne sais pas si c'est toujours optionnel ou bien obligatoire dans certains cas.) Voici donc le code final: Code :
Code :
|
||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Comme quoi on a pas fini d'apprendre!!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com