JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)下面的代码片段是我的脚本的一部分。 此时我有一个数据表,各个行上的一些单元格在第七个位置有一个额外的特殊字符......是的,奇怪的数据集。 有些则不然。 有多个行和多个列,所有行和列的数量都可能不同。
因此,我使用 FOR 循环来检查每行和每列的每个单元格的值,然后修剪或删除第 8 个字符(如果有)。 事实上,脚本可以简单地执行 left(dt,7) 操作,我对此很满意。 我现在所处的位置被卡住了,因为当我使用 GETVALUES 函数时,它将将该列的单元格值放入矩阵中,而我无法弄清楚如何进行左侧修剪。 如果我通过删除 GETVALUES 来单独循环每一行,那么我可以正确地修剪该值,但无法弄清楚如何将新值强制放入单元格中。 我在下面的脚本中包含了这两种方法。
//Loop to delete the closing crazy characters from each row, it is always the 7th character that needs to be removed.
For(n = 1, n <= ncol(dtWAPFile), n++,
colname = Column(n) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
RowVal = dtWAPFile:colname << GetValues; //This gets a matrix
NewRowVal = Left(RowVal,6); //This doesn't work with the matrix
dtWAPFile:colname << setvalues(NewRowVal);//This doesn't work...
); For(n = 1, n <= ncol(dtWAPFile), n++,
colname = Column(n) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
RowVal = dtWAPFile:colname[k]; //This gets the value for a row/column based on the loop
NewRowVal = Left(RowVal,6); //This trims the value
RowVal = setvalues(NewRowVal);//This doesn't work...can't seem to stuff it back in..
);
回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)工作了。 多谢你们! 顺便说一句,我喜欢这个论坛,你们都很聪明,让我在工作中看起来很好:)回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)稍微调整一下吉姆的代码:
NamesDefaultToHere(1);
// Test Table
dt = New Table( "Test",
Add Rows( 4 ),
New Column( "Column 1",
Character,
"Nominal",
Set Values( {"123456", "1234567", "12345678", "1234"} )
),
New Column( "Column 2",
Character,
"Nominal",
Set Values( {"123456789", "123", "123456", "1234567"} )
)
);
// Truncate each cell to the leftmost six characters
Wait(3);
cols = dt << getColumnNames("String");
for(c=1, c<=NItems(cols), c++,
for(r=1, r<=NRow(dt), r++,
Column(dt, cols[c])[r] = Left(Column(dt, cols[c])[r], 6);
);
);回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)我一直没有弄清楚,但我找到了解决方法。 由于某种原因,我可以单步执行代码,它会起作用,但是当我运行整个代码片段时,它不会......奇怪。
最终我不得不删除第一个 FOR 循环,并且不在第一个 FOR 循环中嵌入第二个 FOR 循环。我希望我犯了一个简单的错误,但我就是没能到达那里并且时间不够了。
回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)好吧......所以我没有很好地测试代码......或者实际上我真的没有测试它.:-(
很高兴你明白了
回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)如果我单步执行代码并绕过循环,那么它就可以工作。
回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)遇到错误(如下),但我喜欢听到我把它弄得太难了。 希望我们很接近。
In the following script, error marked by /*###*/
For( n = 1, n <= N Col( dtWAPFile ), n++,
colname = Column( n ) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
Column( dtWAPFile, n )[k] = Left( Column( dtWAPFile, n )[/*###*/k], 6 )
);
)
回复:JSL FOR 循环检查单元格中的值并删除第 7 个字符(如果有)我认为你把事情搞得太难了。 这首颂歌应该有效
For( n = 1, n <= N Col( dtWAPFile ), n++,
colname = Column( n ) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
Column( dtWAPFile, n )[k] = Left( Column( dtWAPFile, n )[k], 6 )
);
);