我试图对齐列值,但它们的长度不同。我不能只使用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),但是结果是错误的。
发布于 2018-03-02 16:56:15
我不熟悉SQR,但是有一个建议:因为SQR支持LPAD函数(请参阅字符串函数):
使用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个字符长。如果必要的话,改变它。
发布于 2018-03-04 22:12:59
首先,您似乎希望结束第9列中的值。lPad函数将不起作用,因为(+1, 9 )要求在第9列中开始。而且,不能将lPad函数放入print语句中。
相反,请使用从第1列开始的print的Edit参数:
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 1https://stackoverflow.com/questions/49071316
复制相似问题