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 :

Remplacer des ', des -, des / dans une variable par des _


Sujet :

Macro

  1. #21
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    facile, isn't it? le code de zelinho n'était pas bon

    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
    data test;
    input test $50.;
    cards;
    Hard Rock
    Histoire / Actualités
    Humour-Théatre
    Jazz
    Jeunesse
    Jeux Mac
    Jeux Nintendo WII-DS
    run;
     
    DATA  test ;
    	SET test;
     
    		nom=translate(test,' ','-');
    		nom=translate(nom,' ','/');
    		nom5=strip(compbl(nom));
    RUN;

  2. #22
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2009
    Messages : 81
    Points : 42
    Points
    42
    Par défaut
    bah ... non ... c'est pas ça...

    Tu me donnes ça :
    Hard Rock
    Histoire Actualités
    Humour Théatre
    Jazz
    Jeunesse
    Jeux Mac
    Jeux Nintendo WII DS
    et je veux ça :

    Hard_Rock
    Histoire_Actualités
    Humour_Théatre
    Jazz
    Jeunesse
    Jeux_Mac
    Jeux_Nintendo_WII_DS
    on s'approche quand même

  3. #23
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2009
    Messages : 81
    Points : 42
    Points
    42
    Par défaut
    par contre ça :
    DATA VAR_ARBO2 ;
    SET VAR_ARBO;
    nom2=translate(nom,' ',"'");
    nom3=translate(nom2,' ','-');
    nom4=translate(nom3,' ','/');
    nom5=translate(strip(compbl(nom4)),'_',' ');
    RUN;
    ça marche !

    youhou !!!

    MERCI A TOUS POUR VOTRE PRECIEUSE AIDE !!!

  4. #24
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    ok je pensais tu voulais finir sur des espaces. Autant pour moi..


    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
    data test;
    input test $50.;
    cards;
    Hard Rock
    Histoire / Actualités
    Humour-Théatre
    Jazz
    Jeunesse
    Jeux Mac
    Jeux Nintendo WII-DS
    run;
     
    DATA  test ;
    	SET test;
     
    		nom=translate(test,' ','-');
    		nom=translate(nom,' ','/');
    		nom5=strip(compbl(nom)); 
    		nom6=translate(strip(compbl(nom5)),'_',' ');
    RUN;

  5. #25
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut
    Hello,

    Avec une expression réguliere :

    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
    DATA test;
    input test $50.;
    cards;
    Hard Rock
    Histoire / Actualités
    Humour-Théatre
    Jazz
    Jeunesse
    Jeux Mac
    Jeux Nintendo WII-DS
    run;
    data test_1;
    	set test;
    test1 = prxchange("s/[\/ -]{1,}/_/",-1,strip(test));
    run;
    Suistrop

  6. #26
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    salut suistro,

    sais tu ou trouver (toi ou qqn d'autre) de la bonne doc sur le prx?

  7. #27
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut
    Hello,

    Je ne connais de site en particulier, j'ai entendu parler des expression reguliere quand j'ai débuter en php.

    Le mieux est de taper REGEXP dans google.

    Pour sas je connais que 2 facons de les utiliser :

    C = PRXMATCH ("/REGEXP/",T1) ;
    Ou T va prendre la premiere valeur du caractere rencontré dans l'expression réguliere et 0 sinon.

    T1 = PRXCHANGE ("s/REGEXP1/REGEXP2/", -1, T0) ;
    Ici on remplace la premiere expression réguliere par la seconde. dans la variable T0. le -1 indique qu'on le fait autant de fois que necessaire.

    Apres il faut s'entrainer et poser des questions !

    Suistrop.

  8. #28
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Bonjour;

    ici

    A noter que ces expressions sont extrêmement puissantes ;

    Moi je n’utilise presque pas de LIKE mais de PRXMATCH.
    A noter que ces fonctions sont beaucoup utilisées dans le langage perl ( en tout les cas moi je les utilise beaucoup)

  9. #29
    Membre éclairé

    Femme Profil pro
    SAS FRANCE - Support Clients France et Europe
    Inscrit en
    Février 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : SAS FRANCE - Support Clients France et Europe
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 289
    Points : 886
    Points
    886
    Par défaut
    Bonjour,

    Dans ce cas il faut traiter le séparateur " / " à part de "/". Les fonctions TRANWRD ou TRANSLATE peuvent être utilisées pour remplacer un caractère ou une chaîne de caractères. TRIM et LEFT vont servir à supprimer les blancs ajouter par tranwrd.

    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
    data a ;
    input valeur $ 1-30 ;
    cards ;
    Hard Rock
    Histoire / Actualités
    Humour-Théatre
    Jazz
    Jeunesse
    Jeux Mac
    Jeux Nintendo WII-DS
    ;
    run ;
    data b ;
    	set a ;
    	put valeur = ;
    	valeur=tranwrd ( valeur , ' / ', '_') ;
    	valeur=tranwrd ( valeur , '/', '_') ;
    	valeur=tranwrd ( valeur , ' - ', '_') ;
    	valeur=tranwrd ( valeur , '-', '_') ;
    	valeur=tranwrd ( trim(left(valeur)) , ' ', '_') ;
    	put valeur = ;
    run ;
    Je pense que ça donne bien le résultat voulu.

    Géraldine CADE-DESCHAMPS
    Support Clients SAS

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 18
    Dernier message: 28/02/2013, 17h59
  2. Réponses: 26
    Dernier message: 20/06/2010, 19h24
  3. [XL-2007] Mettre des fonctions excel dans une variable
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2009, 15h24
  4. Réponses: 0
    Dernier message: 31/07/2009, 03h32
  5. faire saisir des informations différentes dans une variable for
    Par zoozbiro dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/11/2008, 22h25

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