Hi everyone,
I have a txt like that :
Acheteur principal Alerte à traiter Bonne cotation groupe Cotation Groupe Date début alerte Date de calcul de l’alerte Encours acheteur Encours affacturage absolu significatif
101997 04/12/2020 9169,95 0
103156 0 1 C- 16/11/2020 04/12/2020 814,39 0
103650 0 0 E- 02/11/2020 04/12/2020 25619 1
103685 0 0 E+ 28/09/2020 04/12/2020 1411,24 0
108902 0 1 C+ 19/10/2020 04/12/2020 795,6 0
115079 0 0 E- 28/09/2020 04/12/2020 1760,28 0
117008 0 0 E- 28/09/2020 04/12/2020 3944,74 0
118580 0 1 C+ 28/09/2020 04/12/2020 167,64 0
121216 04/12/2020 17781,98 0
128649 04/12/2020 1841,13 0
136913 0 1 C- 23/11/2020 04/12/2020 774,97 0
138842 04/12/2020 4230,69 0
158975 0 0 E- 28/09/2020 04/12/2020 1518,87 0
159013 0 0 E- 28/09/2020 04/12/2020 12984,9 0
I would like to know how can I open it in my SAS code ? Especially around the infile part ?
DATA BO_RECETTE; LENGTH 'Acheteur principal'n 8 'Alerte à traiter'n 8 'Bonne cotation groupe'n 8 'Cotation Groupe'n $ 2 'Date début alerte'n 8 'Date de calcul de l’alerte'n 8 'Encours acheteur'n 8 'Encours affacturage absolu signi'n 8; FORMAT 'Acheteur principal'n BEST12. 'Alerte à traiter'n BEST12. 'Bonne cotation groupe'n BEST12. 'Cotation Groupe'n $CHAR2. 'Date début alerte'n DATE9. 'Date de calcul de l’alerte'n DATE9. 'Encours acheteur'n BEST12. 'Encours affacturage absolu signi'n BEST12.; INFORMAT 'Acheteur principal'n BEST12. 'Alerte à traiter'n BEST12. 'Bonne cotation groupe'n BEST12. 'Cotation Groupe'n $CHAR2. 'Date début alerte'n DATE9. 'Date de calcul de l’alerte'n DATE9. 'Encours acheteur'n BEST12. 'Encours affacturage absolu signi'n BEST12.; INFILE 'C:\Users\...\BO_recette.txt' /* I don't know what I should put */ INPUT 'Acheteur principal'n : BEST32. 'Alerte à traiter'n : BEST32. 'Bonne cotation groupe'n : BEST32. 'Cotation Groupe'n : $CHAR2. 'Date début alerte'n : BEST32. 'Date de calcul de l’alerte'n : BEST32. 'Encours acheteur'n : BEST32. 'Encours affacturage absolu signi'n : BEST32.; RUN
thanks for your help
Code example:
data bo_recette;
infile '/folders/myfolders/unifly.txt' dlm='09'x dsd truncover;
length
Acheteur_principal 8
Alerte_a_traiter 8
Bonne_cotation_groupe 8
Cotation_Groupe $ 2
Date_debut_alerte 8
Date_de_calcul_de_l_alerte 8
Encours_acheteur 8
Encours_affacturage_absolu_signi 8
;
label
Acheteur_principal='Acheteur principal'
Alerte_a_traiter='Alerte à traiter'
Bonne_cotation_groupe='Bonne cotation groupe'
Cotation_Groupe='Cotation Groupe'
Date_debut_alerte='Date début alerte'
Date_de_calcul_de_l_alerte='Date de calcul de l’alerte'
Encours_acheteur='Encours acheteur'
Encours_affacturage_absolu_signi='Encours affacturage absolu signi'
;
format
Date_debut_alerte
Date_de_calcul_de_l_alerte yymmdd10.
;
input
Acheteur_principal
Alerte_a_traiter
Bonne_cotation_groupe
Cotation_Groupe
Date_debut_alerte :ddmmyy10.
Date_de_calcul_de_l_alerte :ddmmyy10.
Encours_acheteur :commax10.
Encours_affacturage_absolu_signi
;
run;
The file is tab-separated, so this should do it:
infile 'C:\Users\...\BO_recette.txt' dlm='09'x dsd truncover;
DSD is necessary to recognize two successive tabs as a missing value.
And I strongly recommend to not use name literals; use valid SAS names, and use the pretty strings in labels only.
Code example:
data bo_recette;
infile '/folders/myfolders/unifly.txt' dlm='09'x dsd truncover;
length
Acheteur_principal 8
Alerte_a_traiter 8
Bonne_cotation_groupe 8
Cotation_Groupe $ 2
Date_debut_alerte 8
Date_de_calcul_de_l_alerte 8
Encours_acheteur 8
Encours_affacturage_absolu_signi 8
;
label
Acheteur_principal='Acheteur principal'
Alerte_a_traiter='Alerte à traiter'
Bonne_cotation_groupe='Bonne cotation groupe'
Cotation_Groupe='Cotation Groupe'
Date_debut_alerte='Date début alerte'
Date_de_calcul_de_l_alerte='Date de calcul de l’alerte'
Encours_acheteur='Encours acheteur'
Encours_affacturage_absolu_signi='Encours affacturage absolu signi'
;
format
Date_debut_alerte
Date_de_calcul_de_l_alerte yymmdd10.
;
input
Acheteur_principal
Alerte_a_traiter
Bonne_cotation_groupe
Cotation_Groupe
Date_debut_alerte :ddmmyy10.
Date_de_calcul_de_l_alerte :ddmmyy10.
Encours_acheteur :commax10.
Encours_affacturage_absolu_signi
;
run;
thank you !
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.