首页 > 解决方案 > COBOL-根据变量向字符串添加字符数

问题描述

如何根据变量将字符添加到字符串的开头?例如,我们用于电话号码的供应商将字符串转换为数字,从而将电话号码的前导 0 去掉。当他们将报告发回给我们时,我们将数字转换回字符串,但现在它没有正确数量的数字。我正在尝试以下操作:

IF LENGTH(TO-NUM) < 10
    SUBTRACT LENGTH(TO-NUM) FROM 10 GIVING ADD-NUM-ZERO

现在我需要弄清楚如何在字符串 TO-NUM 的开头添加 ADD-NUM-ZERO 个 0 而不覆盖开头已经存在的字符。

标签: cobol

解决方案


假设TO-NUM仅包含数字后跟空格(或空格后跟数字),那么

1 TO-NUM PIC X(10).
1 temp-x.
 5 temp-9 pic 9(10).

if to-num not numeric
    compute temp-9 = function numval (to-num)
    move temp-x to to-num
end-if

如有必要,将用相同的值但前导零替换以前的内容。

IF TO-NUM NOT NUMERIC语句相当于询问其中的位数TO-NUM是否小于10。

例如,如果to-num'5551212 '之前,那么to-num将是'0005551212'之后。

如果to-num包含非数字,则需要通过解析来提取to-num数字temp-9


推荐阅读