셀의 값을 확인하고 7번째 문자가 있으면 제거하는 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..
);
Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프일했다. 고마워요! 저는 이 포럼을 좋아합니다. 여러분은 훌륭하고 제가 직장에서 잘 보이도록 만들어줍니다.
Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프Jim의 코드를 약간 수정하면 다음과 같습니다.
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);
);
);Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프나는 그것을 알아 내지 못했지만 해결 방법을 찾았습니다. 어떤 이유에서인지 코드를 단계별로 실행하면 작동하지만 전체 코드 조각을 실행하면 이상하지 않습니다.
결국 첫 번째 FOR 루프를 제거하고 첫 번째 FOR 루프 안에 두 번째 FOR 루프를 포함하지 않아야 했습니다.단순한 실수가 있었으면 좋겠는데 거기까지 갈 수 없어서 시간이 부족했어요.
Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프알겠습니다.....그래서 코드를 잘 테스트하지 못했습니다......아니면 실제로 테스트를 하지 않았습니다.:-(
알아내셨다니 다행이네요
Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프코드를 단계별로 실행하고 루프를 우회하면 작동합니다.
Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프오류(아래)가 발생하지만 너무 어렵게 만들고 있다는 말을 듣고 싶습니다. 우리가 가까워졌기를 바라요.
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 )
);
)
Re: 셀의 값을 확인하고 7번째 문자가 있으면 제거하는 JSL FOR 루프내 생각엔 당신이 너무 힘들게 만드는 것 같아요. 이 노래는 작동해야합니다
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 )
);
);