data meeting;
input region $ mtg : mmddyy8.;
sendmail=mtg-45;
datalines;
N 11-24-99
S 12-28-99
E 12-03-99
W 10-04-99
;
proc print data=meeting;
format mtg sendmail date10.;
title 'When To Send Announcements';
run;
结果是
Obs region mtg sendmail
1 N 24NOV1999 10OCT1999
2 S 28DEC1999 13NOV1999
3 E 03DEC1999 19OCT1999
4 W 04OCT1999 20AUG1999
这个冒号叫做 colon modifier, 一般用于防止数据读不全
用:的意思就是一直读到遇到空格为止(如果是字符串变量那么就读到空格或者定义的冒号后面长度,哪个先满足就哪个)。
读完region以后指针就在region数据后面那个空格处,加上mtg的8个字符,一共需要读9个字符
但是如果用mmddyy8. 的话就只能读到 11-24-9, 如果加个冒号那么就保证能读到空格位置,所以能读成11-24-99, 如果把 mmddyy8.改成mmddyy9. 那么就都一样了