I have this simple data set that I want to create a pipe delimited .txt file but I'm getting 2 added end-of-record/carriage returns in the file. I'll try to supply all the necessary data/code so any help would be appreciated. I'm still fairly new to SAS.
Simple Data Set (no imbedded CR or LF that I can see) output is called CSMOUT1_SUM
CNTR TOT_CHARGE TOT_PAID
150425 53,574,833.43 21,162,557.11
Code to create simple .txt file
DATA CSMOUT1_SUM2 (KEEP=CNTR TOTCHARGES TOTPAID);
SET CSMOUT1_SUM;
TOTCHARGES=PUT(TOT_CHARGE, COMMA13.2);
TOTPAID=PUT(TOT_PAID, COMMA13.2);
RUN;
/* */
ODS LISTING CLOSE;
ODS CSV FILE='TESTOUT.TXT' OPTIONS(DELIMITER='|');
PROC REPORT DATA=CSMOUT1_SUB2 NOHEADER;
RUN;
ODS CSV CLOSE;
The output I get looks like the following when I look at the file in wordpad: (The CRLF are the added carriage returns that I'm getting)
150425|53574833.43|21162557.11 CRLF
CRLF
CRLF
proc export data=CSMOUT1_SUM2 outfile='TESTOUT.TXT' DBMS=DLM delimiter='|' replace;run;
Did you try PROC PRINT instead of PROC REPORT. Doesn' t look like you are doing anything that needs PROC REPORT functionality.
I tried PROC PRINT as well. I dont want the headers and I was aware of the option in PROC REPORT so thats what I used. Anyway, PROC PRINT produces extra carriage returns as well. Could it be a global setting in Options or somthing?
proc export data=CSMOUT1_SUM2 outfile='TESTOUT.TXT' DBMS=DLM delimiter='|' replace;run;
Thanks ballardw!,
That is closer....now I only have 1 extra carriage return at the end instead of 2 so it looks like the following.
150425|53574833.43|21162557.11 CRLF
CRLF
There must be a way to not have the headers either I'm sure using PROC EXPORT....I can figure that part out.
Update
I got the headers out via "putnames=no"
I believe this is how the .txt file is to look - Thanks to all for the help
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.