Using a DATA step, it is possible to read up the current data record using an INFILE and INPUT statement, and then address it with the SAS reserved variable _INFILE_ for whatever purpose you might require. A very simple SAS DATA step is listed below for your review/consideration.
Also, the INFILE statement has parameters you can code to identify the record length, current column pointer location -- review the SAS Language INFILE discussion for details.
Scott Barry
SBBWorks, Inc.
data _null_;
infile datalines dsd truncover dlm=',';
input @;
putlog _all_ / _infile_;
cards;
a,b,c,d
e,f,g,h
run;