This is handled by some classic data step programming. Could be done i thousands of ways, here's one. This example involves some help variables, retain, if-then-else and scans. If you are going to do more of this kind est you should consider taking a SAS programming class.
data report;
infile '~/reportdat.dat';
input;
length station origin $10
originCount 8
originNext $1;
retain station originCount originNext;
firstVar = scan(_infile_,1,' ');
if firstVar eq 'STATION:' then do;
station = scan(_infile_,2,' ');
originCount = 0;
originNext = 'N';
end;
else if firstVar eq '(data' then originNext = 'Y';
else if firstVar eq 'TTL' or
originNext = 'Y' and originCount lt 5 and firstVar not =: '-' then do;
origin = firstVar;
sales2008 = input(scan(_infile_,2,' '),best.);
sales2007 = input(scan(_infile_,3,' '),best.);
if firstVar eq 'TTL' then originNext = 'N';
else originCount+1;
output;
end;
drop firstVar originCount originNext;
run;
Regards,
Linus
Data never sleeps