Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 19h16   #1
Matthcap
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 2
Points : 1
Points : 1
Par défaut Export fichier délimité et valeurs vides

Bonjour,

J'ai une table constituée de variables allant de VAR1 à VAR50, que je veux exporter dans un fichier texte séparé par des ";". Toutes les variables sont au format Texte.
J'utilise le code ci dessous pour faire cet export.

Le problème est que quand j'ai une variable vide, lors de cet export, je m'attendrais à avoir qqch du genre : "TOTO;TATA;;TUTU", mais au lieu d'avoir deux ";" collés, j'obtiens : "TOTO;TATA; ;TUTU", avec un espace entre les ";".

Code :
1
2
3
4
5
6
 
    DATA _NULL_;
       SET tab_out end = FIN ;            
    	  file ficei DLMSTR=';' lrecl=500;
          put var1 var2 var3 var4 ;
    RUN ;
Sur différentes lignes, une variable peut être remplie, ou vide. J'ai bien vérifié que les variables ne contenaient pas d'espace, et sont bien vides.

Pouvez vous m'aider sur ce point?

Merci d'avance,
Matthcap est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 22h29   #2
datametric
Rédacteur
 
Homme Stéphane Colas
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 2 314
Détails du profil
Informations personnelles :
Nom : Homme Stéphane Colas
Âge : 40
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 2 314
Points : 5 576
Points : 5 576
je crois que c'est avec un +-1 dans le PUT.

de mémoire ca devrait être un truc comme cela : put var1 +(-1) var2 ...
de cette façon ca enlève les blancs
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 23h22   #3
RemiBousquet
Membre expérimenté
 
Homme Rémi Bousquet
responsable adjoint service stat
Inscription : mars 2009
Messages : 343
Détails du profil
Informations personnelles :
Nom : Homme Rémi Bousquet
Âge : 36
Localisation : France

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

Informations forums :
Inscription : mars 2009
Messages : 343
Points : 507
Points : 507
Hello, le +(-1) enlève le dernier caractère à toutes les variables, ce qui provoque des anos.

Ca semble marcher avec l'option dsd :
Code :
1
2
3
4
5
6
7
8
9
10
DATA _NULL_;
    var1 = "TOTO" ;
    var2 = "TATA" ;
    var4 = "TUTU" ; 
    file "D:\DONNEES\T E M P\export.txt" DLMSTR=';' lrecl=500 dsd;
    put var1 
        var2 
        var3 
        var4  ;
RUN ;
Résultat : TOTO;TATA;;TUTU --> Sans l'espace
RemiBousquet est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 08/01/2013, 11h34   #4
Matthcap
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 2
Points : 1
Points : 1
Merci à tous les deux.
Je vais garder la réponse de Rémi qui fonctionne.

Le problème effectivement sur le +-1 est qu'il tronquait les derniers caractères quand c'est non vide.
Matthcap est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h53.


 
 
 
 
Partenaires

Hébergement Web