Well, there's no simple solution there I am afraid. Personally I would not have accepted this for data in the first place. What I would suggest is this: 1) Import the datafile using a datastep + infile and read the whole string each time into one variable, call it string: data have; infile "xyz.txt"; length string $2000; input string $; run; 2) Next write a datastep which starts by blocking the data out into sections: data inter (drop=num); set have; retain num block; if _n_=1 then do; num=input(scan(string,1,","),best.); block =1; header_record="Y"; end; else do; num=num-1; if num < 0 then do; block=block+1; header_record="Y"; num=input(scan(string,1,","),best.); end; end; run; Now you have an id for each group and can process each row of data out into your variables by using scan, header record is shown with the Y so you can pull that out as well.
... View more