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 )
);
);