JSL 错误:访问或评估“For”时参数不足你好,
我是 JSL 脚本编写的初学者。 我需要有关以下错误的帮助。
“访问或评估‘For’时没有足够的参数”
在下面的代码中,我尝试删除列名称中包含某些字符串的列。 我不确定我在哪里犯了错误。
dt = Current Data Table();
col_list = dt << get column names(string);
for(i = 1; i>= N Items (col_list), i++,
If(
Contains(col_list[i], "MTR") | Contains(col_list[i], "AUTO") | Contains(col_list[i], "ProcessCon") | Contains(col_list[i], "Macro") | Contains(col_list[i], "OTH_SP") ),
Remove from(col_list, i)
)
);
dt << delete columns( col_list );
请告诉我。 谢谢。
回复:JSL 错误在访问或评估“For”时没有足够的参数我能够解决这个问题,下面的代码可以帮助我根据列名称删除列。
Clear Log();
dt = Current Data Table();
col_list = dt << get column names;
For( c = N Cols( dt ), c >= 1, c--,
If(
Contains( col_list[c], "MTR" ) | Contains( col_list[c], "AUTO" ) | Contains( col_list[c], "ProcessCon" )
| Contains( col_list[c], "Macro" ),
dt << deleteColumn( c )
);
);
回复:JSL 错误在访问或评估“For”时没有足够的参数嗨杰夫,
谢谢。 这样就消除了错误。 但是,我肯定犯了一个逻辑错误。 我的代码删除了数据表中的所有列。
也许,我在删除列时犯了一个错误?
我可以写以下内容,而不是“从 (col_list, i) 中删除”吗?
dt<< 删除列(col_list[i]); ?
我不确定语法。 但我的目标是删除列名称中包含“MTR”或“ProcessCon”等的所有列。
请告诉我。
回复:JSL 错误在访问或评估“For”时没有足够的参数第一个参数后面有一个分号 (;),而不是逗号 (,)。
您还有一个额外的右括号。
它应该是:
dt = Current Data Table();
col_list = dt << get column names( string );
For( i = 1, i >= N Items( col_list ), i++,
//________^
//comma here, no semi-colon
If(
Contains( col_list[i], "MTR" ) | Contains( col_list[i], "AUTO" ) |
Contains( col_list[i], "ProcessCon" ) | Contains( col_list[i], "Macro" ) |
Contains( col_list[i], "OTH_SP" )
),
Remove From( col_list, i )
//)
//don't need close parentheses above
);
dt << delete columns( col_list );