Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2011, 14h39   #1
Invité de passage
 
Inscription : mars 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 21
Points : 3
Points : 3
Par défaut Lire jusqu'a la fin de la ligne d'un fichier

Salut,

Je suis toujours en train de travailler sur mon fichier texte que je dois importer sous sas.
Je voudrais savoir comment fait-on pour lire le fichier jusqu’à la fin de la ligne.
En effet les lignes de mon fichier ne contiennent pas toutes le même nombre d'éléments??
Je donne un exemple d'une partie de qques lignes de mon fichier texte :

258963147 123654 123654789 123556654116165
987456321 368742 168987451 16523225

Ici les deux lignes ne présentent pas le même nombre d'éléments et je souhaiterais que la dernière colonne contiennent tout le reste de la ligne.

Voici mon programme sas lié

Code :
1
2
3
4
5
6
7
8
9
data test;
infile fichier;
input
ID 1-9
Nb1 10-16
Nb2 17-20
Nb3 20-25
texte$ 26-???; /*c'est ici que je ne sais pas comment coder*/
run;
Jack_nicholson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h52   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Tu attribues une valeur qui ne te permettra pas de tronquer ta variable.
26-50 par exemple.
Pourquoi pas 100 aussi
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h52   #3
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
solution toute simple, tu peux essayer de mettre une très grande valeur (par exemple, 1000...) de sorte à prendre toutes les informations de la ligne la plus longue. Pour les autres lignes, les valeurs les valeurs les plus à droites seront enregistrées comme chaine de caractère "espace".
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h59   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Pour plus de sûreté, indique une longueur de ligne dans le fichier à lire avec l'option LRECL, et demande à SAS de compléter les lignes plus courtes avec des blancs à droite avec l'option PAD.
Code :
INFILE fichier LRECL=1000 PAD ;
Comme ça tu peux écrire dans ton INPUT texte$ 26-1000 ;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 17h33   #5
Invité de passage
 
Inscription : mars 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 21
Points : 3
Points : 3
Ok merci olivier, ça marche nickel!!!
Jack_nicholson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h13.


 
 
 
 
Partenaires

Hébergement Web