【发布时间】:2012-06-21 06:44:33
【问题描述】:
如何将 4gl 中的字符串与指定的空格数右对齐?
【问题讨论】:
如何将 4gl 中的字符串与指定的空格数右对齐?
【问题讨论】:
您可以使用 FILL 函数创建指定数量的空格。例如,FILL("A", 10) 将返回 "AAAAAAAAAA"。
这是一个简单的演示:
DEFINE VARIABLE cText AS CHARACTER NO-UNDO.
DEFINE VARIABLE iLength AS INTEGER NO-UNDO.
iLength = 16.
cText = "Some text".
cText = FILL(" ", iLength - LENGTH(cText)) + cText.
MESSAGE cText.
您要求的总长度为 16 个字符。使用 LENGTH(cText) 确定您的文本占用多少个字符,然后使用 FILL 在字符串前面创建剩余的空格数。
Informix
我为 Progress 4GL 回答了这个问题,后来才注意到这个问题是关于 Informix 4GL 的。我很抱歉我的错误。
您可以在 Informix 中使用相同的主体来执行此操作。您可以使用 LENGTH 关键字找出现有文本的长度,但不要使用 FILL() 来填充空格,而应该使用 SPACES。
Progress: FILL(" ", 10) + c_text
Informix: 10 SPACES, c_text
我真的希望这对你有帮助。
【讨论】:
使用 DISPLAY 时,您可以指定其位置:
DISPLAY l_string at 3,3
同样,您可以将变量设置为位置的占位符:
DEFINE l_dest1, l_dest2 int
DEFINE l_string char(20)
LET l_string = "Some text here"
LET l_dest1 = 3
LET l_dest2 = 6
DISPLAY l_string at l_dest1, l_dest2
结果:
Some text here
您也可以在字符串前添加空格,例如:
DISPLAY" MY TEXT"
如果文本在变量中并且您不想在该变量中添加空格。 你可以这样做:
DISPLAY " ", l_string
在how to center a string 上也可以查看我的回答。 我希望这会有所帮助。
【讨论】:
您在 Informix 4GL 中使用 USING 语句。这可用于进行各种格式化,包括填充。
LET l_string = "X"
LET l_string = l_string USING "######"
这会将字符串“X”更改为前面有 5 个空格。
对于用零填充数字也很有用。使用 "&&&&&&" 将 1 更改为 00001。
【讨论】: