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 :

Utilisation du format $quote


Sujet :

SAS Base

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 113
    Points : 107
    Points
    107
    Par défaut Utilisation du format $quote
    Lors de l'utilisation du format $quote, j'ai un problème pour les variables caractères dont le nombre de caractères >= length -1 de ma variable.
    Si je crée un fichier txt sur ces variables alors SAS (v8) ne m'exporte rien

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    data a;
     length a $2.;
     a='b';
     run;
     
     data _null_;
      file 'd:\test1.txt' ;
      set a;
      put a;  
      format a $quote.;
    run;
    Dans cet exemple le fichier test1 sera vide avec l'utilisation du format $quote.
    Pour que le $quote marche il faut que mon length de a soit de $3. Sauf que je ne peux pas changer cette longueur.
    Quelqu'un connaît-il une méthode pour contourner ce problème ?
    NB : tagsets.semisv expérimental en v8. J'ai essayé cette méthode mais je n'ai pas de double quote à la fn de ma variable.
    Merci de votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Il y a confusion entre length et format dans ton code !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DATA a;
    /* length a $2.; */
    length a $ 2 ;
     a='b';
     run;
     
     DATA _null_;
      file 'd:\test1.txt' ;
      SET a;
      put a;  
      format a $quote.;
    run;
    Bon courage !

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 113
    Points : 107
    Points
    107
    Par défaut
    Oui merci pour le point en trop. C'est plus propre même SAS ne fait toujours pas d'alerte dessus.
    Par contre cela ne change pas mon problème d'export.
    En v9, cela marche mais en v8 non.
    J'ai pour l'instant utiliser la solution de contournement de créer des variables temporaires avec un length + 2 de ma variable.
    Pas propre et alourdie beaucoup.
    Il n'y aurait-il pas une autre solution ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Désolé je n'ai pas de v8 sous la main pour tester...

    Bon courage !

  5. #5
    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
    Bonjour Lhonolulu.
    Le format $QUOTE réagit comme tous les formats : pour être sûr de son coup, il vaut mieux lui indiquer une longueur, qui sera le nombre de caractères mobilisés pour l'affichage.
    Quand tu veux afficher / exporter "a", ça prend 3 caractères : le 1er ", puis le a, puis le 2e ". Donc il faut au moins $QUOTE3.
    Ce qui est cool avec ce format, à l'export, c'est qu'il met le " fermant après le dernier caractère non blanc, quelle que soit la longueur du format. Donc tu peux mettre $QUOTE250. à toutes tes variables caractères sans craindre de perdre de la place.
    Je te joins un essai, exécuté avec succès sur SAS 8.2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DATA a;
     length a $2 b $12 c $1 ;
     a='b';
     b='test' ;
     c='x' ;
     run;
     
     DATA _null_;
      file 'c:\temp\test1.txt' dlm="," ;
      SET a;
      put a b c;  
      format _CHARACTER_ $quote250. ;
    run;
    Olivier
    Bon courage.
    Olivier

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 113
    Points : 107
    Points
    107
    Par défaut
    Merci je ne savais pas que l'on pouvait spécifier la longueur du format quote.
    Ca marche du tonnerre de Zeus !

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

Discussions similaires

  1. utiliser un format "date heure" dans une formule
    Par Tonton Phil dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2007, 14h37
  2. [VBA] Utilisation de Format
    Par jmde dans le forum VBA Access
    Réponses: 15
    Dernier message: 14/04/2007, 22h53
  3. Utilisation de Format
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/10/2006, 11h37
  4. problème avec l'utilisation du format %
    Par tzinzin dans le forum Access
    Réponses: 5
    Dernier message: 30/03/2006, 14h43
  5. [TImageList] Comment utiliser le format GIF ?
    Par Pedro dans le forum Composants VCL
    Réponses: 17
    Dernier message: 23/10/2005, 23h08

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