Dear All,
I have to read row data file with line-width of 748.
In spite of using LRECL I cannot read beyond 728th column I cannot access as the pointer goes to the next line (the same had happened at the 256th on, before using LRECL).
Could someone help me, please?
JAR
You can use the LIST statement to get SAS to dump the input records to the log. Then you can check for special characters like '0A'x (linefeed) that might be making SAS think that they line has ended.
If you have an embedded linefeed you can use the TERMSTR=CRLF option on the INFILE statement.
Another possibility is that the end of that line is empty. You might try using the TRUNCOVER option. Look at this thread. http://communities.sas.com/message/101557
Another possibility is that the lines contain tab ('09'x) characters and that SAS is expanding the tabs into spaces. This would make the input buffer longer as one tab might be expanded into upto 8 spaces.
Are you using any of the xxxOVER infile options?
The default is FLOWOVER which causes the behaviour you describe, when the infile buffer has not enough data to fill the informat(s) of an INPUT .
Check the informat length of the last column you read from the data file
for example, is it like
input
....
@730 string_variable $20.
...
;
that would cause it !
Hi Peter,
I have used Tom's suggestion: TRUNCOVER.
It worked fine. Thanks a lot.
Regards,
Jijil
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.