【发布时间】:2012-04-17 04:12:50
【问题描述】:
def var cList as char no-undo.
assign cList = "one,two,three,four".
<Loop> cList
logic...
</Loop>
在 char 变量中循环以逗号分隔的列表的最佳方法是什么,这样在这个例子中我会得到一个然后是两个然后是三个然后是四个。
【问题讨论】:
标签: progress-4gl openedge
def var cList as char no-undo.
assign cList = "one,two,three,four".
<Loop> cList
logic...
</Loop>
在 char 变量中循环以逗号分隔的列表的最佳方法是什么,这样在这个例子中我会得到一个然后是两个然后是三个然后是四个。
【问题讨论】:
标签: progress-4gl openedge
大声笑我仍然记得我认为的一些进步。
DEF VAR i AS INT NO-UNDO.
&SCOPED-DEFINE LIST "one,two,three,four"
DO i=1 TO NUM-ENTRIES({&LIST}):
MESSAGE SUBSTITUTE("LIST[&1] is &2", i, ENTRY(i, {&LIST})).
END.
【讨论】:
DEFINE VARIABLE ch-list AS CHARACTER NO-UNDO.
DEFINE VARIABLE i-cnt AS INTEGER NO-UNDO.
DEFINE VARIABLE i-entry AS INTEGER NO-UNDO.
ASSIGN
ch-list = "one,two,three,four"
.
ASSIGN
i-cnt = NUM-ENTRIES(ch-list)
.
REPEAT i-entry = 1 TO i-cnt:
DISPLAY
ENTRY(i-entry, ch-list)
WITH DOWN.
END.
【讨论】:
NUM-ENTRIES 函数没有内联在重复语句中是否有特定原因?与它有关的每次迭代都必须通过循环进行评估?
DEFINE VARIABLE iNumEntries AS INTEGER NO-UNDO.
DEFINE VARIABLE iLoop AS INTEGER NO-UNDO.
def var cList as char no-undo.
assign cList = "one,two,three,four".
ASSIGN iNumEntries = NUM-ENTRIES(cList,",").
DO iLoop = 1 TO iNumEntries:
MESSAGE ENTRY(iLoop,cList,",") VIEW-AS ALERT-BOX.
/* You can use display, assign to variable, etc */
END.
【讨论】: