Variables 如何更改正在进行的可变长度?
我对进步还很陌生,我想问一个问题 如何在运行时更改变量(字符串)长度Variables 如何更改正在进行的可变长度?,variables,runtime,progress-4gl,cname,openedge,Variables,Runtime,Progress 4gl,Cname,Openedge,我对进步还很陌生,我想问一个问题 如何在运行时更改变量(字符串)长度 ex. define variable cname as char. define variable clen as int. cname= "". DO cnts = 1 TO 5. IF prc[cnts] <> "" THEN DO: clen = clen + LENGTH(prc[cnts]). cname = cname + prc[cnts]. END
ex.
define variable cname as char.
define variable clen as int.
cname= "".
DO cnts = 1 TO 5.
IF prc[cnts] <> "" THEN DO:
clen = clen + LENGTH(prc[cnts]).
cname = cname + prc[cnts].
END.
END.
ex。
将变量cname定义为char。
将变量clen定义为int。
cname=”“。
DO cnts=1到5。
如果prc[cnts]”,则执行以下操作:
clen=clen+长度(prc[cnts])。
cname=cname+prc[cnts]。
结束。
结束。
将cname格式“??”置于1/这里改变可变长度/
感谢您的回复如果PUT语句是您想要更改的,那么
PUT UNFORMATTED cname.
将写出整个字符串,而不必担心格式短语的长度
如果你需要格式化的东西,那么
PUT UNFORMATTED STRING(cname, fill("X", clen)).
我会做你想做的。在ABL Ref文档中查找“STRING()”函数 正在进行4GL所有数据长度可变 这是Progress和许多其他开发环境之间的一个巨大差异。(我认为这是一个很大的优势。) 每个数据类型都有一个默认格式,您可以覆盖该格式,但仅用于显示目的 显示格式与存储无关 可以声明显示格式为3个字符的字段:
define variable x as character no-undo format "x(3)".
然后在字段中填充60个字符。进步不会抱怨
x = "123456789012345678901234567890123456789012345678901234567890".
4gl应用程序代码过度填充变量和字段是非常常见的
(如果您随后使用SQL-92访问数据,您将听到SQL客户机发出的大量抱怨和咬牙切齿的声音。这可以通过“dbtool”实用程序轻松解决。)
定义内容时可以更改显示格式:
define variable x as character no-undo format "x(30)".
或者当您使用它时:
put x format "x(15)".
或
(在许多其他方面——这些只是几个简单的例子。)
无论显示格式如何,length()函数都会报告数据的实际长度。然后将其标记为答案是合适的。
display x format "x(43)".