如何使用SAS读取长文本记录和短文本记录?

how to read text records long and short using SAS?

一段有10条记录的文本需要读取并保存为table,下面是我试过的: 我将记录分成 3 个部分 x1、x2、x3,但 x3 有问题:

data a;
input x1 -11 x2 -14 x3 -100;
cards;
Major Group 01: Agricultural Production Crops
Major Group 02: Agriculture Production Livestock And Animal Specialties
Major Group 07: Agricultural Services
Major Group 08: Forestry
Major Group 09: Fishing, Hunting, And Trapping
Major Group 10: Metal Mining
Major Group 37: Transportation Equipment
Major Group 38: Measuring, Analyzing, And Controlling Instruments, Photographic, Medical And 
Optical Goods, Watches And Clocks
Major Group 39: Miscellaneous Manufacturing Industries
Major Group 40: Railroad Transportation
;
run;

x3的结果被截断了,想知道如何正确读取记录才能保留所有10条记录而不遗漏任何一个字母。 谢谢!

  1. 不要使用固定宽度格式,使用以冒号作为分隔符的分隔方法
  2. 指定变量的长度
data a;
length x1  x2 0.;
infile cards dlm=':' truncover;
input x1 x2;
*separate group type and number into two different variables;
GroupNum = input(compress(x1, , 'kd'), 8.);
GroupType = compress(x1, , 'd');
cards;
Major Group 01: Agricultural Production Crops
Major Group 02: Agriculture Production Livestock And Animal Specialties
Major Group 07: Agricultural Services
Major Group 08: Forestry
Major Group 09: Fishing, Hunting, And Trapping
Major Group 10: Metal Mining
Major Group 37: Transportation Equipment
Major Group 38: Measuring, Analyzing, And Controlling Instruments, Photographic, Medical And Optical Goods, Watches And Clocks
Major Group 39: Miscellaneous Manufacturing Industries
Major Group 40: Railroad Transportation
;
run;