drop str;
datalines4;
t_1|
title1 "title1 for &pgm.";|
footnote1 "footnote1 for t_1";
footnote2 "footnote2 for t_1";|
6.3|
t_2|
title1 "title1 for &pgm.";
title2 "title2 for &pgm.";|
footnote1 "footnote1 for t_2";
footnote2 "footnote2 for t_2";
footnote3 "footnote3 for t_2";|
5.2
;;;;
run;
data attrib (where= (point>0) drop=temp);
length temp footnote title $500 pgm $8;
retain footnote '' title '' pgm '';
infile datalines ;
input temp & $500. ;
if find(temp,'title')>0 then title= strip(title)|| tranwrd(temp,'|','');
else if find(temp,'footnote')>0 then footnote= strip(footnote)|| tranwrd(temp,'|','');
else if anyalpha(tranwrd(temp,'|',''))=0 then point= input(tranwrd(temp,'|',''),best.) ;
else pgm = tranwrd(temp,'|','');
output;
if point>0 then call missing(title,footnote, pgm);
datalines4;
t_1|
title1 "title1 for &pgm.";|
footnote1 "footnote1 for t_1";
footnote2 "footnote2 for t_1";|
6.3|
t_2|
title1 "title1 for &pgm.";
title2 "title2 for &pgm.";|
footnote1 "footnote1 for t_2";
footnote2 "footnote2 for t_2";
footnote3 "footnote3 for t_2";|
5.2
;;;;
data _null_;
infile 'c:\temp\attrib.txt';
file 'c:\temp\attrib.mod' ls =32767;
input;
if length(_infile_)>1 then put _infile_ @;
run;
data attrib;
length pgm $10 title $200 footnote $400 point 8;
infile 'c:\temp\attrib.mod' delimiter='|' ls =32767;
input pgm title footnote point @@;
run;