有一个看起来像这样的打印机文件:
Customer-data Units01 Units02 ....... Units11
-------------------------------------------------------------
Name/address/zip/.... Count01 Count02 ....... Count11
Name/address/zip/.... Count01 Count02 ....... Count11
: : : : : : : :
Name/address/zip/.... Count01 Count02 ....... Count11
------- ------- ------- -------
Totals Total01 Total02 ....... Total11
Units、Count 和 Total 字段被映射到数据结构中,并覆盖有这样的数组定义:
0014.00 D UNITSDS DS
0015.00 D UNITS01
0016.00 D UNITS02
: : :
0024.00 D UNITS10
0025.00 D UNITS11
0026.00 D UNITSAR LIKE(UNITS) DIM(11)
0026.00 D OVERLAY(UNITSDS)
: D*-------------------------------------------------------
0034.00 D COUNTDS DS
0035.00 D COUNT01
0036.00 D COUNT02
: : :
0044.00 D COUNT10
0045.00 D COUNT11
0046.00 D COUNTAR LIKE(COUNT) DIM(11)
0046.00 D OVERLAY(COUNTDS)
: D*-------------------------------------------------------
0054.00 D TOTALDS DS
0055.00 D TOTAL01
0056.00 D TOTAL02
: : :
0064.00 D TOTAL10
0065.00 D TOTAL11
0066.00 D TOTALAR LIKE(TOTAL) DIM(11)
0066.00 D OVERLAY(TOTALDS)
经过一些处理后,当我在打印机文件的详细信息行上处理 WRITE 时,我收到“十进制数据错误”。
令我感到非常惊讶的是,数组 COUNTAR 和 TOTALAR 的数据类型似乎是“Packed”,尽管之前定义的所有变量 COUNT、COUNTnn、TOTAL 和 TOTALnn 都是“分区的”并且数据结构 COUNTDS 和 TOTALDS 是“Char”。
打包数据映射到打印机文件的输出缓冲区,导致“十进制数据错误”。
为什么这些数组突然变成“打包”数据格式?