|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2009 Messages : 84 ![]() |
Bonjour,
On m'a filé un fichier texte à importer sous SAS. Ce fichier contient les noms des variables en première ligne => OK et les données sur les lignes suivantes. Le hic est que dans ce fichier texte, les observations sont sur 1 ou plusieurs lignes. Le fichier est trop gros (8 000 000 lignes) pour le retraiter à la main. Exemple : ID Nom Prénom Age Lieu 1 Nom1 Prenom1 28 Ici 2 Nom2 Prenom2 45 Là 3 Nom3 Prenom3 12 Là-bas ... La table SAS visée est telle que : ID Nom Prénom Age Lieu 1 Nom1 Prenom1 28 Ici 2 Nom2 Prenom2 45 Là 3 Nom3 Prenom3 12 Là-bas ... Savez vous s'il y a une option dans une procédure data qui permet cela où si vous avez une idée de contournement ... Merci ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
C'est ce que SAS fait par défaut avec INFILE / INPUT si on n'indique pas d'option MISSOVER. MISSOVER interdit justement d'aller compléter à la ligne suivante une observation qui ne contient pas autant de valeurs que prévu.
|
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2009 Messages : 84 ![]() |
Bah c'est qu'il y a un soucis dans mon code alors ...
Code :
|
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Enlève aussi le TRUNCOVER pour voir.
Mais je n'imaginais pas que ça serait un fichier colonné, je voyais un fichier à séparateurs. D'ordinaire, les fichiers colonnés ne reviennent pas à ligne quand ça leur chante... |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2009 Messages : 84 ![]() |
Il me fait sauter des observations (en gros une sur deux).
Pour les observations sur deux lignes, il me ramène la seconde ligne sur la première, mais il m'écrase la dernière variable qui était convenablement remplie ... Là où l'adresse était OK avec TRUNCOVER, le contenu de cette variable a été remplacé par le contenu des variables suivantes. |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
C'est cette organisation en colonnes qui pourrit tout !
Si ton fichier était avec des séparateurs, ça irait tout seul.Ce qu'on pourrait tenter, ce serait un travail en 2 temps : Tu alimentes alors une variable temporaire, _INFILE_, qui contient ta ligne à importer. Selon sa longueur (tester avec LENGTH) tu peux peut-être deviner si elle est complète ou si elle déborde sur la ligne suivante. En fonction (avec un IF) tu peux brancher ton INPUT normal ou une version qui lit sur 2 lignes (avec un / tu indiques la ligne qui suit. Genre : Code :
Bon courage. Olivier |
||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2009 Messages : 84 ![]() |
L'idée est très bonne en effet.
Je l'ai testé et il me manque des enregistrements (qui pourtant sont complets), certains sont incomplets, d'autres vides ... Globalement, le rendu est plus propre mais cela ne me donne pas la table finale. Ayant pas mal de variables dans mon input, et donc pas mal de cas à traiter avec le IF ... je ne peux mettre cette méthode en application. Avec 4 ou 5 variables ca l'aurait fait certainement. Je vais voir si on peut me refournir une table plus propre ou si j'arrive à faire quelque avec un editeur de texte genre ultraedit pour améliorer la chose. Merci du coup de main ! |
|
|
00
|
|
|
#8 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
Hello,
peux tu poseter quelques lignes de ton fichier ( incluant les lignes qui posent problème) et le programme utilisé? |
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2009 Messages : 84 ![]() |
Comme c'est une table de contact, il y a des données "sensibles" (noms, numéros de téléphone, ...) dedans, c'est moyen de la publier sur le net. Et anonymiser une soixantaine de variable sur une dizaine d'observations me botte moyen et ne serait du coup pas forcément représentatif du fichier.
Merci de coup de main quand même ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com