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

SAS Base Discussion :

comment ajouter plusieurs blancs à une variable


Sujet :

SAS Base

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Points : 76
    Points
    76
    Par défaut comment ajouter plusieurs blancs à une variable
    Bonjour,

    Je souhaiterais rajouter au début d'une variable plusieurs balncs (3 par exemple), comment faire?? je sais qu'il existe des fonction comme CAT,CATS,CATT et CATX qui gère les blancs mais j'arrive pas à coller plusieurs esapces à la suite... seul un seul blanc s'affecte...

    J'attend vos réponse.

    Merci

  2. #2
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    Bonjour,

    Pour des variables de type caractère, tu peux utiliser les fonctions put et right pour insérer n espaces avant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data test;
       var1="AAA";
       var2=right(put(var1,$6.));
    run;
    Ici on suppose que VAR1 est de longueur 3. On créé VAR2 de longueur 6, on aligne à droite ce qui nous donne 6-3=3 espaces à gauche.

    Steel
    Avant de poser votre question, n'oubliez pas :
    FAQ, SAS DOC et de ce forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Points : 76
    Points
    76
    Par défaut
    Merci pour ta réponse...
    mais en faite, je crois que RIGHT prend les 6 premiers caractères et les alignes à droite (ou à gauche).., ce que je souhaiterais avoir dans ton exemple, c'est par exemple avoir ça ' AAA', 3 espaces puis AAA dans la variable var2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATA test;
       var1="AAA";
       var2=RIGHT(put(var1,$6.));
    run;

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Points : 76
    Points
    76
    Par défaut
    Exact, tu avais raison, ça marche mais surprise ça marche sur SAS normal (SAS base) mais ça donne pas la même résultat dans Entreprise guide (ça enlève tous les blanc), savez vous pourquoi, et s'il y a une façon de contourner le problème.

    Merci encore

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    c'est exactement ce que fait ce programme ' AAA' dans la variable var2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATA test;
    var1="AAA";
    var2=RIGHT(put(var1,$6.));
    run;

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Points : 76
    Points
    76
    Par défaut
    oui je l'ai testé.. mais regarde juste le message d'avant... sur entreprise guide (un produit SAS) ça fais pas cela.. pourtant c'est sensé l'être... moi j'utilise EG..

  7. #7
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    Je déteste guide pour ça
    Cependant, j'ai trouvé la solution

    Il faut utiliser un caractère invisible
    Ce caractère s'écrit avec la combinaison de touche du clavier : ALT et 255.
    1) Appuie la touche ALT (a gauche de la barre d'espace)
    2) en laissant appuyé sur ALT compose 255 sur le clavier numérique
    3) relache ALT

    Donc il suffit de concaténer ces caractères invisibles (entre quote) avec ta variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DATA test;
       var1="AAA";
       var2='   '!!var1; /* 3 caractère invisible (ALT 255) concaténé avec var 1*/
    run;
    proc print data=test;
    run;
    PS: ne fais pas à copié/collé de mon code car ALT 255 ne marche pas sur ce forum (il met des étoiles à la place).

    Steel
    Avant de poser votre question, n'oubliez pas :
    FAQ, SAS DOC et de ce forum

  8. #8
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Dans SAS Guide, il y a un bug pour l'affichage des blancs à gauche : c'est répertorié et décrit ici : http://support.sas.com/kb/16/808.html.
    Pour l'affichage des blancs dans le résultat, l'option de style ASIS=ON peut s'employer dans les procédures Print, Tabulate et Report.

    Olivier
    Bon courage.
    Olivier

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    Merci beaucoup pour vos réponses, donc enfaite il s'agit juste de trouver un moyen de contournement.. j'ai trouvé que aussi ALT + 0160 fait l'affaire.. mais juste pour l'affichage..

    Parcontre, pour que ces blanc soient inserer dans la table SAS, non ça fait pas l'affaire.. je crois que pour cela, il faut plutot attendre la version Eguide 4.2 début 2009.........!!!!

    Merci

Discussions similaires

  1. Comment ajouter plusieurs données dynamiques dans un item d'une listview
    Par Rohan21 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 02/08/2014, 16h50
  2. comment ajouter plusieurs variables dans un TextBox en VBA ?
    Par Kalem dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 14/05/2012, 16h47
  3. [MySQL] comment ajouter plusieurs articles dans une BD MySql+tables temporaires
    Par forbidden_fruit dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/05/2008, 12h00
  4. Ajouter du texte à une variable
    Par micatmidog dans le forum Langage
    Réponses: 2
    Dernier message: 28/09/2005, 19h09

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