Help using Base SAS procedures

export to delimited file

Reply
New Contributor
Posts: 3

export to delimited file

Hi,

I'm using the following to create a text delimited file. However for the fields that have null value, the output text file is generating a space between the delimiters. Is there any way to get rid of the blanks ?

I cannot use proc export as I cannot customise the header and trailer (or is it possible to customise headers/trailers in proc export ?)

Thanks  !

data _null_;

  dt= datetime();

  format dt YMDHMS.;

  format Business_Date b8601da.;

  format OBS Z8.;

  format amount_SUM Z20.;

  retain amount_SUM;

  set sas_extract_formatted end=EFIEOD NOBS=OBS;

  FILE  'C:\Users\f051615\rawfile.txt' DLM='~' LINESIZE=1000;    /* Output Text File */

  if _n_ = 1 then do;

  PUT "H~SASX~" Business_Date dt;

  end;

  do;

  amount_SUM=sum(amount_SUM,amount_Final);

  /*put (_all_)(+0);*/

  PUT 'D~'

  Business_Date

  Month_Key

  Period_Id

  Customer_Id

end;

if EFIEOD then do;
   PUT "T~" OBS CEA_SUM;
end;

run ;

Super User
Posts: 7,762

Re: export to delimited file

Your code was either not correctly pasted or contains errors. The second PUT lacks a semicolon before the end;

I also think that you wanted to output amount_SUM instead of CEA_SUM in the final PUT

To suppress the blanks for empty strings, use the DSD option in the FILE statement.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
New Contributor
Posts: 3

Re: export to delimited file

Posted in reply to KurtBremser

thank you !

Sorry I must have copied and pasted incorrectly.

the DSD option worked.

Super User
Posts: 7,762

Re: export to delimited file

Then please mark the question as answered.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 3 replies
  • 227 views
  • 0 likes
  • 2 in conversation