首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQR中对齐列值

在SQR中对齐列值
EN

Stack Overflow用户
提问于 2018-03-02 14:38:01
回答 2查看 705关注 0票数 1

我试图对齐列值,但它们的长度不同。我不能只使用Print '123' (+1, 9),然后使用Print '123456' (+1, 9),因为它看起来如下所示:

代码语言:javascript
复制
123456790123456790123456790123456790123456790123456790 <- Ignore this line
       123
       123456

注意正确的大多数数字是如何不对齐的。我希望输出是这样的:

代码语言:javascript
复制
123456790123456790123456790123456790123456790123456790 <- Ignore this line
     123
  123456

所以我想停止在某个索引上打印。如何使用SQR实现这一目标?

我尝试了Print '123' (+1, 9)Print '1234' (+1, 9),但是结果是错误的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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,您可能需要调整它):

代码语言:javascript
复制
Print lpad('123', 6, ' ') (+1, 9)

这将使...123 (每个点表示一个空格)。

为什么LPAD为6个字符的长度?因为你的另一个字符串('123456')有6个字符长。如果必要的话,改变它。

票数 1
EN

Stack Overflow用户

发布于 2018-03-04 22:12:59

首先,您似乎希望结束第9列中的值。lPad函数将不起作用,因为(+1, 9 )要求在第9列中开始。而且,不能将lPad函数放入print语句中。

相反,请使用从第1列开始的print的Edit参数:

代码语言:javascript
复制
Print 123    (+1,1) edit 999999999
Print 123456 (+1,1) edit 999999999

现在,这对数字很有用,但对于字符串,只要它们包含数字,它也能很好地工作。所以这也起作用了:

代码语言:javascript
复制
Print '123'    (+1,1) edit 999999999
Print '123456' (+1,1) edit 999999999

我已经在SQR中测试了这些语句,它们可以工作,但是,这将产生丑陋的结果:

代码语言:javascript
复制
Print 'ABC'    (+1,1) edit 999999999
Print 'ABCDEF' (+1,1) edit 999999999

如果必须打印字符串而不是数字,那么使用lPad命令格式化变量:

代码语言:javascript
复制
Let $String = lPad($String, 9, ' ')
Print $String (+1,1) ! <--- start at column 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49071316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档