我正在尝试对齐列值,但它们的长度不同。我不能只使用Print '123' (+1, 9)
然后使用Print '123456' (+1, 9)
,因为它看起来像这样:
123456790123456790123456790123456790123456790123456790 <- Ignore this line
123
123456
注意最右边的数字是如何相互对齐的。我希望输出像这样:
123456790123456790123456790123456790123456790123456790 <- Ignore this line
123
123456
所以我想停止在某个索引上打印。我如何使用SQR实现这一目标?
我尝试了Print '123' (+1, 9)
和Print '1234' (+1, 9)
,但结果错误。
答案 0 :(得分:1)
我不熟悉SQR,但这里有一个建议:因为SQR支持LPAD功能(见String functions):
使用左侧的source_value填充length_value的长度 pad_value并返回结果。
语法:dst_var = lpad(source_value,length_value,pad_value)
您可以将它应用于您打印的字符串。例如(再次:请注意我不知道SQR,您可能需要调整它):
Print lpad('123', 6, ' ') (+1, 9)
会使...123
(每个点代表一个空格)。
为什么LPAD长度为6个字符?好吧,因为你的另一个字符串('123456')是6个字符长。如有必要,请更改它。
答案 1 :(得分:0)
首先,看起来你想要结束第9列中的值.lPad函数对此不起作用,因为(+1,9)在第9列中说START。另外,你不能把lPad放函数进入print语句。
而是使用第1列中打印的编辑参数:
Print 123 (+1,1) edit 999999999
Print 123456 (+1,1) edit 999999999
现在这对于数字很有用,但只要它们包含数字,它也适用于字符串。所以这也有效:
Print '123' (+1,1) edit 999999999
Print '123456' (+1,1) edit 999999999
我已经在SQR中对这些语句进行了测试并且它们有效,但是,这会产生难看的结果:
Print 'ABC' (+1,1) edit 999999999
Print 'ABCDEF' (+1,1) edit 999999999
如果必须打印字符串而不是数字,请使用lPad命令格式化变量:
Let $String = lPad($String, 9, ' ')
Print $String (+1,1) ! <--- start at column 1