怎么在as/400上创建tab键分隔的文件
时间:2016-07-08 ┊ 阅读:8,268 次 ┊ 标签: 开发 , 编程 , 设计
平时我们在rpg程序中,用逗号(x'6b')来分隔字段以生成csv文件,导出后方便用户查看。但有时需要以tab键来分隔字段,对齐比较方便,在as400上该怎么做到呢?
其实tab键是在pc下分隔字段的方便,在db2上是不支持tab做为列分隔符的。但是我们可以用 IFS 命令CPYTOIMPF (Copy to Import File) 来创建tab分隔的文件:
CPYTOIMPF FROMFILE(library/filename) TOSTMF('pathnamefilename.ext') STMFCODP
AG(PCASCII) RCDDLM(CRLF) STRDLM('"') FLDDLM(x'05')
注意参数 FLDDLM (Field Delimiter),其默认值为逗号(‘,’). 在 ASCII 码中 tab 的ASCII码为 x’09’,对应于 as/400 上的 EBCDIC 码 x’05’. 在as/400上,用WRKTBL 可以查看 QASCII 转换表.
WRKTBL TBL(QASCII):
QASCII QSYS EBCDIC TO ASCII TRANSLATE TABLE
文本版:
Hex Hex Hex Hex Hex Hex
Input Output Input Output Input Output
00 00 0F 0F 1E 1E
01 01 10 10 1F 1F
02 02 11 11 20 80
03 03 12 12 21 81
04 9C 13 13 22 82
05 09 14 9D 23 83
06 86 15 85 24 84
07 7F 16 08 25 0A
08 97 17 87 26 17
09 8D 18 18 27 1B
0A 8E 19 19 28 88
0B 0B 1A 92 29 89
0C 0C 1B 8F 2A 8A
0D 0D 1C 1C 2B 8B
0E 0E 1D 1D 2C 8C
2D 05 3C 14 4B 2E
2E 06 3D 15 4C 3C
2F 07 3E 9E 4D 28
30 90 3F 1A 4E 2B
31 91 40 20 4F 21
32 16 41 A0 50 26
33 93 42 A1 51 A9
34 94 43 A2 52 AA
35 95 44 A3 53 AB
36 96 45 A4 54 AC
37 04 46 A5 55 AD
38 98 47 A6 56 AE
39 99 48 A7 57 AF
3A 9A 49 A8 58 B0
3B 9B 4A 5B 59 B1
5A 5D 69 B9 78 C2
5B 24 6A 7C 79 60
5C 2A 6B 2C 7A 3A
5D 29 6C 25 7B 23
5E 3B 6D 5F 7C 40
5F 5E 6E 3E 7D 27
60 2D 6F 3F 7E 3D
61 2F 70 BA 7F 22
62 B2 71 BB 80 C3
63 B3 72 BC 81 61
64 B4 73 BD 82 62
65 B5 74 BE 83 63
66 B6 75 BF 84 64
67 B7 76 C0 85 65
68 B8 77 C1 86 66
87 67 96 6F A5 76
88 68 97 70 A6 77
89 69 98 71 A7 78
8A C4 99 72 A8 79
8B C5 9A CB A9 7A
8C C6 9B CC AA D2
8D C7 9C CD AB D3
8E C8 9D CE AC D4
8F C9 9E CF AD D5
90 CA 9F D0 AE D6
91 6A A0 D1 AF D7
92 6B A1 7E B0 D8
93 6C A2 73 B1 D9
94 6D A3 74 B2 DA
95 6E A4 75 B3 DB
B4 DC C3 43 D2 4B
B5 DD C4 44 D3 4C
B6 DE C5 45 D4 4D
B7 DF C6 46 D5 4E
B8 E0 C7 47 D6 4F
B9 E1 C8 48 D7 50
BA E2 C9 49 D8 51
BB E3 CA E8 D9 52
BC E4 CB E9 DA EE
BD E5 CC EA DB EF
BE E6 CD EB DC F0
BF E7 CE EC DD F1
C0 7B CF ED DE F2
C1 41 D0 7D DF F3
C2 42 D1 4A E0 5C
E1 9F F0 30 FF FF
E2 53 F1 31
E3 54 F2 32
E4 55 F3 33
E5 56 F4 34
E6 57 F5 35
E7 58 F6 36
E8 59 F7 37
E9 5A F8 38
EA F4 F9 39
EB F5 FA FA
EC F6 FB FB
ED F7 FC FC
EE F8 FD FD
EF F9 FE FE
通过参数FLDDLM(x’05’),告诉系统用16进制的‘05’来分隔字段(列),导到pc上会自动转换成16进制码‘09’,就是tab符了。
上一篇:一个周末,一游海之韵公园