Bonjour,
Je cherche à importer un fichier csv sous SAS.
Dans ce fichier j'ai un champs texte qui peut contenir des retours à la ligne.
Lorsque je fais l'import sous SAS, avec un infile :
Cela ne fonctionne pas, car il interprete les retours à la ligne du champs message comme des nouvelles lignes à importer dans la table SAS.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 infile "C:\Fichiers\RequestFieldInfo.csv" delimiter = ';' MISSOVER DSD lrecl=32767 firstobs=2 TERMSTR=CRLF encoding=utf8;
(Cela me parait assez logique d'ailleurs!).
Mais lorsque j'ouvre mon fichier csv avec excel , il importe bien les données correctement avec le champs message complet dans une seule variable (colonne d'excel).
Par ailleurs, lorsque je fais l'import sous SEG, cela fonctionne correctement également. Mais si je regarde le code généré par SEG correspondant, je m'aperçois qu'il importe un fichier txt, qu'il a lui même créé à partir de mon fichier csv.
Donc l'infile devient :
Mais rien dans le code n'apparait au sujet de la création de ce fichier txt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 INFILE 'C:\Users\nom\AppData\Local\Temp\SEG4492\RequestFieldInfo-1be9c7fc432f4e26a60cfe5460ec289b.txt' LRECL=2834 ENCODING="WLATIN1" TERMSTR=CRLF DLM='7F'x MISSOVER DSD ;
Quand je regarde le fichier txt créé, je vois qu'il a supprimé les retours à la ligne et donc mis le champs message sur une même ligne.
Mes questions sont donc :
- savez vous quelle manip SEG fait exactement lors de cet import ? y a-t-il moyen de récupérer un code SAS pour cette manip ?
- plus généralement, avez vous une idée pour résoudre mon problème (sans passer par SEG ! et de manière à tout faire via un programme SAS) ?
Merci de votre aide !
Partager