cobol - COBOL-根据变量向字符串添加字符数
问题描述
如何根据变量将字符添加到字符串的开头?例如,我们用于电话号码的供应商将字符串转换为数字,从而将电话号码的前导 0 去掉。当他们将报告发回给我们时,我们将数字转换回字符串,但现在它没有正确数量的数字。我正在尝试以下操作:
IF LENGTH(TO-NUM) < 10
SUBTRACT LENGTH(TO-NUM) FROM 10 GIVING ADD-NUM-ZERO
现在我需要弄清楚如何在字符串 TO-NUM 的开头添加 ADD-NUM-ZERO 个 0 而不覆盖开头已经存在的字符。
解决方案
假设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
。
推荐阅读
- asp.net-core - ASP.NET CORE 2.1 中弹出模式中的 Error.cshtml(使用异常处理中间件)
- python - 将类型从“列表”类更改为整数
- mysql - 在 Django 中查询可能包含以下任何 F、M、T、S、U、X 的 CSV 列
- java - 抑制 Java 异常堆栈跟踪
- typescript - 实例化接口类型的变量
- python - numpy.where 条件选择二维数组中的特定垂直列
- html - HTML 画布线条多种颜色
- c# - Xamarin Xaml C# cross-platform Can't get the image in ScrollView -> AbsoluteLayout -> Image to fill the entire width
- javascript - 反应:为什么将事件对象放在事件处理程序参数的末尾
- sql-server - SQL Server:在存储过程中向操作员发送电子邮件