BookmarkSubscribeRSS Feed
NinaLWerner
Calcite | Level 5

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. Man Frustrated

2 REPLIES 2
NinaLWerner
Calcite | Level 5
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?

 

NinaLWerner
Calcite | Level 5

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.)  Smiley Frustrated

I can provide a sample input file, if you have any ideas and would like to play with it.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1239 views
  • 0 likes
  • 1 in conversation