Either you will need to have a fixed-format record or declare some delimiter-character that will be used to parse each record to create individual pieces, even as much with your header-row which appears cumbersome to deal with, from your data example. One approach would be to load the input buffer which populates special-named SAS variable _INFILE_ and then use a DO UNTIL(FOREVER); / END; code-paragraph along with SCAN function to assign variables (over compensating for length and type to get the data loaded first in to a SAS file). Then using another special variable _N_ assign an OBSNUM variable to track and re-connnect disjoint field-values, back into some purposeful orientation, possibly using PROC TRANSPOSE I would expect.
Suggest the OP get the individual "component piece" parsing down first, then tackle how to reassemble pieces into usable data-rows, as needed.
Scott Barry
SBBWorks, Inc.