无法创建大于40的xpt文件(Sas8)标签
TS-140记录布局不工作。 下面是大于40的变量的标题部分。 标题记录*******LABELV8标题记录!!!!!!!nnnn 其中nnnnn是将使用长标签的变量数无法创建大于40的xpt文件(Sas8)标签,sas,Sas,TS-140记录布局不工作。 下面是大于40的变量的标题部分。 标题记录*******LABELV8标题记录!!!!!!!nnnn 其中nnnnn是将使用长标签的变量数 我们可以获得任何样本xpt(sas8)文件(至少有一个标签大于40)。在SAS Universal Viewer的文件打开菜单中,它明确显示V5传输文件。V5格式仅支持SAS版本5中存在的限制。因此,8个字符的名称,40个字符的标签,字符变量的最大长度为200 但它看起来确实支持较长的值。至少在使用1.42版时 要制作示例
我们可以获得任何样本xpt(sas8)文件(至少有一个标签大于40)。在SAS Universal Viewer的文件打开菜单中,它明确显示V5传输文件。V5格式仅支持SAS版本5中存在的限制。因此,8个字符的名称,40个字符的标签,字符变量的最大长度为200 但它看起来确实支持较长的值。至少在使用1.42版时 要制作示例的代码:
data v8;
attrib var1 label=
'This label is so long that it will have more than 40 characters';
input (var1 var2 ThisNameIsMoreThan8Chars) (:$1.);
cards;
1 2 3
4 5 6
;
%loc2xpt(libref=work,memlist=V8,filespec=xpt,format=auto);
结果文件:
305 data _null_;
306 infile xpt lrecl=80 recfm=f;
307 input;
308 list;
309 run;
NOTE: The infile XPT is:
Filename=...,
File Size (bytes)=1440
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
1 HEADER RECORD*******LIBV8 HEADER RECORD!!!!!!!000000000000000000000000000000
2 CHAR SAS SAS SASLIB 9.1 LIN X64. 07JUN21:11:11:51
ZONE 54522222545222225454442232322222444253302222222222222222222222223345433333333333
NUMR 3130000031300000313C92009E100000C9E0864000000000000000000000000007A5E21A11A11A51
3 07JUN21:11:11:51
4 HEADER RECORD*******MEMBV8 HEADER RECORD!!!!!!!000000000000000001600000000140
5 HEADER RECORD*******DSCPTV8 HEADER RECORD!!!!!!!000000000000000000000000000000
6 CHAR SAS V8 SASDATA 9.1 LIN X64.07JUN21:11:11:51
ZONE 54522222532222222222222222222222222222225454454232322222444253303345433333333333
NUMR 3130000068000000000000000000000000000000313414109E100000C9E0864007A5E21A11A11A51
7 07JUN21:11:11:51
8 HEADER RECORD*******NAMSTV8 HEADER RECORD!!!!!!!000000000300000000000000000000
9 CHAR ........var1 This label is so long that it will have ........
ZONE 00000000767322225667266666267276266662766726727666266762222222220000000022222222
NUMR 020001016121000048930C125C09303F0CFE704814094079CC081650000000000000000000000000
10 CHAR ........var1 .?..........................var2
ZONE 00000000767322222222222222222222222222220300000000000000000000000000767322222222
NUMR 00000000612100000000000000000000000000000F01010000000000000002000102612200000000
11 CHAR ........ ........var2
ZONE 22222222222222222222222222222222222222222222000000002222222200000000767322222222
NUMR 00000000000000000000000000000000000000000000000000000000000000000001612200000000
12 CHAR ............................ThisName
ZONE 22222222222222222222000000000000000000000000000056674666222222222222222222222222
NUMR 0000000000000000000001010100000000000000020001034893E1D5000000000000000000000000
13 CHAR ........ ........ThisNameIsMoreThan8Chars
ZONE 22222222222222222222222200000000222222220000000056674666474676566634667722222222
NUMR 0000000000000000000000000000000000000000000000024893E1D593DF25481E83812300000000
14 CHAR ....................
ZONE 00000000000000000000222222222222222222222222222222222222222222222222222222222222
NUMR 01010100000000000000000000000000000000000000000000000000000000000000000000000000
15 HEADER RECORD*******LABELV8 HEADER RECORD!!!!!!!1
16 CHAR .....?var1This label is so long that it will have more than 40 characters
ZONE 00000376735667266666267276266662766726727666266762667627666233266676676772222222
NUMR 01040F612148930C125C09303F0CFE704814094079CC081650DF250481E040038121345230000000
17 HEADER RECORD*******OBSV8 HEADER RECORD!!!!!!! 2
18 123456
NOTE: 18 records were read from the infile XPT.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
你的编程问题是什么?您正在运行的代码是什么?您有什么问题?我正在使用c#创建xpt文件。这没有问题。有最新的更新,在(Sas8)文件中包含超过40个字符的标签。问题是关于Sas8文件,它应该能够在Sas查看器中打开。什么查看器?如果要使用使用%loc2xpt和%xpt2loc宏支持的高级功能的XPORT文件,则需要使用SAS本身将其转换为数据集。我们使用的是SAS Universal Viewer。我们能在Sas universal viewer中看到长度大于40的Sas标签吗?谢谢。您能否发送上述样本文件。我正在寻找一个工作示例。您可以从我添加的日志中的HEXCODE重新创建它。我对Sas完全是空白,我只使用Sas universal viewer打开文件,我将通过在记事本++中编辑来检查规则。所以我真的不知道如何从上面的hexa代码创建xpt文件。但我了解文件结构。如果你有编码技能,可以编写一个C程序来生成XPT文件,那么你应该能够将上面SAS日志中的文本行转换为1440字节的二进制文件。18块,每个80字节。谢谢。我们可以在Sas标签(xpt文件)中使用中文字符吗。对于2个或更多字节字符,我们是否有任何限制。