I am hoping that someone will have an old macro program to process my mainframe reports TXT output files and replace the 0 or 1 in column 1 [that was substituted for a real page feed/ line feed in the FTP process] with actual control codes, so I don't have to manually edit every page on these many legacy reports for which I have just become the steward. Thanks! I'm back on mainframe after twelve years or so on PC SAS. It surprised me that the production process is: FTP each report, then edit every single page to work in MS Word for printing, then create PDFs.
DATA _NULL_ ;
INFILE txtin;
INPUT @1 xchr $1. @1 lnin $CHAR133.;
LENGTH lnut $134;
IF xchr=' ' then lnut=lnin;
ELSE IF xchr='0' then lnut=CATS('0A20'x, SUBSTR(lnin,2));
ELSE IF xchr='-' then lnut=CATS('0A0A20'x, SUBSTR(lnin,2));
ELSE IF xchr='1' then lnut=CATS('0C20'x, SUBSTR(lnin,2));
FILE txtut;
PUT lnut;
RUN;
Not quite working. I'm losing centered titles and not all formfeeds are being inserted. Any thoughts?
I improved my result with INFILE txtin TRUNCOVER; to handle short rows.
I still need help getting the titles centered (or maintaining the tabs inserted in the TXT rows.)
I can provide a sample input file, if you have any ideas and would like to play with it.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.