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 :

Supprimer un caractère à condition qu'il soit en fin de chaîne


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Biostatisticienne
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Biostatisticienne
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Supprimer un caractère à condition qu'il soit en fin de chaîne
    Bonjour j'ai testé pas mal de fonctions sans pouvoir réaliser ce que j'attendais.

    dans une variable "manquant", je peux retrouver ceci :
    appel_1/class_f/date_ECG/date_F/date_a/
    age/
    imc/taille/poids

    donc dans mes chaines de caractères, je voudrai lui dire que si le dernier "caractère" est un caractère spécial = "/" alors je le supprime.
    Voici mon code pour le moment : qui me permet de supprimer les doublons de "//" dans ma chaine de caractères.
    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 export2; set export;
    	format manquant3 $CHAR10000.;
    	Length manquant3 $ 10000;
       do until(index(manquant2,'/ /')=0); /*La boucle sera exécutée tant qu’un symbole / sera identifié*/
          tag_start = index(manquant2,'/ /');
          tag_end   = index(manquant2,'/ /');
          substr(manquant2,tag_start,tag_end-tag_start+1)='';
       end;
       *manquant3 = TRANWRD(manquant2, " /",""); /*supprime le caractère " /" et remplace par rien*/ 
       manquant3=COMPBL(manquant2);
       manquant3=COMPRESS(manquant3);
     
     	label  		Manquant3 = "Liste des variables manquantes";
    	where c_miss_missing>0;
    run;
    la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       *manquant3 = TRANWRD(manquant2, " /",""); /*supprime le caractère " /" et remplace par rien*/
    me permettait de supprimer le dernier caractère mais il me supprime aussi des "/" dans ma chaîne de caractère.

    Pouvez vous m'aider ?

    merci par avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Bonsoir,

    une réponse de paresseux
    if strip(reverse(manquant))=:"/" then manquant=reverse(substr(strip(reverse(manquant)),2));réponse 2 : les regex seraient parfaites pour ce traitement, pourquoi pas ne pas y jeter un coup d'oeil ?

    Edit :
    peut-être devra tu rajouter un dernier strip final () à voir

    if strip(reverse(manquant))=:"/" then manquant=strip(reverse(substr(strip(reverse(manquant)),2)));

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Biostatisticienne
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Biostatisticienne
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Bonsoir,

    Merci pour votre réponse.
    Je regarde demain pour votre ligne de code.
    Cependant, je ne connais pas du tout "regex", je ferai des recherches dessus

    Merci bonne soirée

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Biostatisticienne
    Inscrit en
    Décembre 2017
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Biostatisticienne
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2017
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Bonjour, ta ligne de code fonctionne parfaitement en tout cas, merci

    Regex pour "Regular Expression", je ne connaissais pas du tout, je vais me renseigner sur cela, merci pour cette indication.

Discussions similaires

  1. [PL/SQL] Supprimer les caractères non numériques
    Par Oliveuh dans le forum PL/SQL
    Réponses: 6
    Dernier message: 25/06/2015, 12h13
  2. Réponses: 3
    Dernier message: 14/03/2006, 14h43
  3. Supprimer le caractère ">"
    Par fabreizhad dans le forum Débuter
    Réponses: 2
    Dernier message: 27/12/2005, 12h08
  4. [VB6] Supprimer des caractères d'une chaine
    Par Overflow64 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/10/2005, 10h26
  5. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 11h11

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