我一直坚持这个问题一段时间了.非常感谢帮助.
我有一个4位数字从文件中读入,我需要取内部2位数.我认为以字符串形式读取数字是一个好主意,然后在子字符串中取两个中间数字并使用numval函数将它们转换回来.不幸的是,我无法弄清楚如何获得里面的两个字符.
防爆.我有5465号,我想要46号.
Keith Thompson的建议会很好.您可能想要检查I> 0和J> 0.如果您总是知道1000 <= I <= 9999,那将不会有问题.
IBM Enterprise COBOL包含一个MOD函数,您的编译器可能会也可能不会这样.
我想你也可以做以下......
01 A-GROUP.
05 A-NUMBER PIC 9999 VALUE ZEROES.
05 A-STRING REDEFINES A-NUMBER.
10 FILLER PIC X.
10 THE-MIDDLE-TWO-DIGITS PIC XX.
10 FILLER PIC X.
MOVE your-number TO A-NUMBER.
Run Code Online (Sandbox Code Playgroud)
如果您的号码被定义为COMP或COMP-3,这应该有效,只要0 <=您的号码<= 9999.
您可以使用参考修改.考虑以下:
1 WS-MY-FIELD Pic X(4).
1 WS-TGT-FIELD Pic X(2).
...
Move WS-MY-FIELD (2:2) to WS-TGT-FIELD
Run Code Online (Sandbox Code Playgroud)
第一个数字表示开始位置(基于1),第二个数字表示长度.
| 归档时间: |
|
| 查看次数: |
11149 次 |
| 最近记录: |