Parsing Rexx-解析CSV行(';';分隔符)

Parsing Rexx-解析CSV行(';';分隔符),parsing,csv,rexx,Parsing,Csv,Rexx,我知道我们可以用类似的方式解析CSV行(“;”分隔符): delim = ';' myline="i;want;to;know;what;love;is" parse var myline w1 (delim) w2 (delim) w3 (delim) w4 (delim) w5 (delim) w6 (delim) w7 say w1 w2 w3 w4 w5 w6 w7 我想知道是否有一种方法可以简化“w#(delim)”的迭代,以便执行以下操作: parse var myline w1

我知道我们可以用类似的方式解析CSV行(“;”分隔符):

delim = ';'
myline="i;want;to;know;what;love;is"
parse var myline w1 (delim) w2 (delim) w3 (delim) w4 (delim) w5 (delim) w6 (delim) w7
say w1 w2 w3 w4 w5 w6 w7
我想知道是否有一种方法可以简化“w#(delim)”的迭代,以便执行以下操作:

parse var myline w1 (delim) w2 (delim) ... (delim) w6 (delim) w7
/* then we will have all w1 to w7 defined
我可以用一些数组来实现一个函数,但在rexx上是否可以实现本机功能,我只是想知道


谢谢

当然,如果您真正想要的是
n
名为
w1
w2
<代码>wn:

do i = 1 by 1 while myline <> ''
    parse var myline word (delim) myline
    interpret "w" || i "= word"
end
或者重新组装它们只是:

line = ""
do i = 1 to w.0
    line = line || w.i || ';'
end

我不知道Parse正在分配剩余的单词。谢谢,这帮了我很大的忙。我想你需要一个DO循环的终止条件。尝试在
MYLINE
的末尾添加一个分隔符,然后
doi=1乘1,直到STRIP(MYLINE)='
@NealB是的,这将教会我在不运行代码的情况下键入代码。在myline“”中更新了
,这样就可以完成任务。myline“”中的
do i=1 x 1
作为循环(@NealB)是完美的。在我的Rexx中赋值
w.0=i
是错误的:
i
在测试until之前递增:因此它将是
w.0=i-1
@Martin是的,我输入了那个代码,我没有运行它。现在修好了。
do i = 1 by 1 while myline <> ''
    parse var myline w.i ';' myline
end
w.0 = i-1
do i = 1 to w.0
    say w.i
end
line = ""
do i = 1 to w.0
    line = line || w.i || ';'
end