Parsing Rexx-解析CSV行(';';分隔符)
我知道我们可以用类似的方式解析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
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