我有一些长度可变的csv记录,例如:
0005464560,45667759,ZAMTR ,!至ACC 12345678,DR,79.85
0006786565,34567899,ZAMTR ,!至ACC 26575443,DR,1000
我需要将每个字段分开,我需要最后一个应该是钱的字段。
但是,当我读取文件并将记录解压缩到字段中时,我发现最后一个字段在其末尾包含垃圾值。金额(金钱)字段应为8个字符,前面5个数字,1个点,最后2个数字。输入的值可以是任何值,例如13.5,1000和354.23。
"FILE SECTION"
FD INPUT_FILE.
01 INPUT_REC PIC X(66).
"WORKING STORAGE SECTion"
01 WS_INPUT_REC PIC X(66).
01 WS_AMOUNT_NUM PIC 9(5).9(2).
01 WS_AMOUNT_TXT PIC X(8).
"MAIN SECTION"
UNSTRING INPUT_REC DELIMITED BY ","
INTO WS_ID_1, WS_ID_2, WS_CODE, WS_DESCRIPTION, WS_FLAG, WS_AMOUNT_TXT
MOVE WS_AMOUNT_TXT(1:8) TO WS_AMOUNT_NUM(1:8)
DISPLAY WS_AMOUNT_NUM
从显示中看,该值相当正常:345.23,1000,就像我将字段写入文件后一样,这就是它们的成果:
79.85 ^ M ^ @ ^ @ 137.35 ^ M ^ @
我检查了来自字段WS_AMOUNT_TXT的字段WS_AMOUNT_NUM,发现^ @是一种低值。但是,我找不到什么是^ M,它不是空格,不是高价值。