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

Débutez Discussion :

Utiliser des opérateurs alphanumériques sur une variable numérique : CALL EXECUTE


Sujet :

Débutez

  1. #1
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut Utiliser des opérateurs alphanumériques sur une variable numérique : CALL EXECUTE
    Bonjour,
    dans une étape data j'utilise des pour appeler une macro. En paramètre de cette macro je passe une chaîne de caractères dont une partie est obtenue par une variable numérique prise par les enregistrements.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CALL EXECUTE ('%DataTyp_Numeric('|| put(toto, $4.) ||')');
    Dans cet exemple toto est numérique et pour pouvoir utiliser l'opérateur de concaténation || dessus j'utilise la fonction put.

    J'obtiens un avertissement qui me dit que toto est déjà définie comme variable numérique.

    Si j'utilise la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CALL EXECUTE ('%DataTyp_Numeric('|| toto ||')');
    SAS me dit avec un avertissement que la variable numérique a été convertie en alphanumérique.

    Quelqu'un aurait-il une idée de syntaxe pour éviter d'avoir un avertissement

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    responsable adjoint service stat
    Inscrit en
    Mars 2009
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : responsable adjoint service stat
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2009
    Messages : 448
    Points : 823
    Points
    823
    Par défaut
    Cela vient d'une coquille dans l'utisation du put
    Il n'est en effet pas nécessaire de préciser le $, puisque put est utilisé pour transformer en variable string.
    Il te suffit de faire : put(toto, 4.)
    Exemple à l'appui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data test ;
        toto = 1234 ;
        test1 = put (toto, $4.) ;
        putlog "test1 = put (toto, $4.) -> avec le $, un warning de sas pour " ;
    run; 
     
    data test ;
        toto = 1234 ;
        test2 = put (toto,  4.) ;
        putlog "test2 = put (toto, 4.) -> sans le $, pas de warning" ;
    run ;

  3. #3
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut
    Effectivement ça marche très bien.

    Merci Rémi

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

Discussions similaires

  1. [WD18] Erreur d'affectation sur une variable numérique.
    Par PointCarreJo dans le forum WinDev
    Réponses: 3
    Dernier message: 06/10/2014, 17h19
  2. Utiliser include sur une variable de la barre d'adresse
    Par Loïc B. dans le forum Langage
    Réponses: 3
    Dernier message: 28/12/2010, 12h20
  3. utilisation d'une variable numérique issue de bash comme paramètre dans gawk
    Par rosedavril dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 11/03/2010, 21h24
  4. Réponses: 6
    Dernier message: 23/09/2009, 14h47
  5. Réponses: 1
    Dernier message: 06/03/2009, 10h02

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