IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macro Discussion :

Sélection de mots dans une macro variable


Sujet :

Macro

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut Sélection de mots dans une macro variable
    Bonjour,

    J'ai besoin de votre aide pour récupérer les mots dans plusieurs macro variables.
    J'ai déjà récupéré, non sans difficulté à cause des virgules, dans une macro variable le nombre de mots contenus dans la macro variable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    %LET toto = a, b,  c;
    %LET titi = %SYSFUNC(COUNTW("&toto."));
    Mais avec les virgules dans la macro variable de départ, j'ai quelques difficultés à obtenir ce que je veux.
    Je voudrais donc 3 macros variables pour chaque mot, sans espaces et sans virgules et sans guillemets.
    J'ai essayé ceci mais je n'obtiens pas exactement ce que je veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    %MACRO TEST;
    	%DO i = 1 %TO &titi.;
    		%LET var&i. = %QSCAN("&toto.",&i.,%STR(,));
    		%PUT ****&&var&i..***;
    	%END;
    %MEND TEST;
    %TEST;
    Merci de votre aide

    delph_le

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 77
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Rapidement avant de partir en week-end, essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    %LET toto =a, b,  c;
    %put &toto;
     
    data wrk.tbl1(keep=var1);
    var2="&toto";
    var1=COMPRESS(var2);
    CALL SYMPUTX("nbmots",count(var1,","));
    CALL SYMPUT("titi",var1);
    run;
     
    %put &nbmots;
    %put &titi;
     
     
    %macro boucle;
    %do i=1 %to &nbmots+1;
    %let varmots&i=%scan("&titi",&i,",");
    %put &&varmots&i;
    %end;
    %mend;
    %boucle;
    j'ai pas testé mais ça devrait passer

    Cdt,

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    Merci bien, j'ai testé et ça fonctionne très bien

    Merci

    delph_le

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Protection mot réservé dans une macro variable
    Par ignoux dans le forum Macro
    Réponses: 2
    Dernier message: 19/03/2015, 11h52
  2. Nombre de mots dans une macro-variable avec apostrophe
    Par Claudia(y) dans le forum Macro
    Réponses: 2
    Dernier message: 20/10/2013, 20h15
  3. Nombre de mots dans une macro variable
    Par MEGAMIND2 dans le forum Macro
    Réponses: 2
    Dernier message: 10/01/2011, 19h59
  4. Réponses: 1
    Dernier message: 02/07/2008, 16h30
  5. Remplacement caractère dans une macro variable
    Par Atojul dans le forum Macro
    Réponses: 2
    Dernier message: 22/04/2008, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo