|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() vallery camiadeÉtudiant Inscription : avril 2011 Messages : 22 ![]() |
Bonjour a tous
J'aimerai utiliser une macro variable afin de diviser mon programme en plusieurs blocs , et en fonction de la valeur de cette variable je peut choisir lequel des blocs j'aimerai exécuter. j'ai essayé ça Citation:
Citation:
je vous remercie en avance de pouvoir m'aider. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
hello,
visiblement tes instructions tu les as écrit dans un code ouvert, j'entends pas un code ouvert ( tous "statement" non entouré d'une étape data; ...run; ou proc; ... run; ou un macro langage %macro ma_macro; .... %mend; peu de code SAS fonctionne en mode ouvert. on trouve les options; les titres,... mais jamais de %IF %THEN ... ou if ...then. si tu veux qu'on t'aide , essaies de poster ton programme. |
|
|
10
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
@SAM : le code ouvert, ce n'est pas exactement ce que tu décris (ou alors je n'ai pas compris). Parce qu'à te lire, je trouve qu'un LIBNAME fonctionne en code ouvert.
Pour moi, "open code" c'est tout ce qui n'est pas inclus à l'intérieur d'un macro-programme. C'est à dire que quasiment tout fonctionne en code ouvert, sauf %IF, %DO, %GOTO et peut-être quelques autres instructions du langage macro. |
|
|
00
|
|
|
#4 | |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Citation:
|
|
|
|
10
|
|
|
#5 | |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Je lis bien effectivement ta remarque. Mais prenons donc le cas contraire : le message dit "%IF n'est pas valide en code ouvert". Donc dans ta définition il devrait être intégré dans (au choix ?) une étape Data, une procédure ou un macro-programme.
C'est dans ce "choix" ou cette équivalence que je coince : les syntaxes "non valides en code ouvert" sont uniquement, à ma connaissance, des instructions macro qui n'ont pas le droit d'être employées en dehors d'un macro-programme. Et du coup je ne vois pas le rapport avec les étapes Data et les procédures, qui sont sur un autre plan que le langage macro puisque traitées par un autre compilateur. Je vois d'ailleurs dans la doc ce qui me semble être une définition... (c'est au paragraphe qui suite la NOTE). Citation:
|
|
|
|
00
|
|
|
#6 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
non pas dans un choix , Le %if %DO ,conditions , boucles Macros %DO %TO ne marchent que dans le cas de code encapsulé dans un: %macro ; %mend;
Ce que je voulais expliquer ,c'est qu'en général les instructions SAS se font qu'à l'intérieur des blocs DATA, PROC. Puisqu'on ne peut pas mettre de if, ou where ou autre en dehors de ces étapes. J'ai peut être raté mon explication
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
SAM, je crois qu'on dit la même chose mais qu'on ne se comprend pas. Donc enterrons là cette discussion.
Par contre pour le problème initial, je pense que notre diagnostic est commun : il faudrait que Vallery encapsule son code dans un macro-programme pour avoir le droit d'y intégrer des %IF. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Et je crois qu'il faudrait des doubles quotes au lieu des simples
|
|
|
00
|
|
|
#9 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
That's right.
|
|
|
00
|
|
|
#10 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
@Brice: qu'elle teste déjà avec un code macro .Après on verra s'il n'y a pas d'autres surprises.
|
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() vallery camiadeÉtudiant Inscription : avril 2011 Messages : 22 ![]() |
Bonjour
Oui vous avez raison , j'ai intégrer mon code dans un macro programme et ça marche maintenant ! je vous remercie tous pour vos réponses! Je ne sais pas comment j'aurai réussis mon projet de stage sans vos aides !!! je remercie tout l'équipe de ce forum ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com