나는 일련의 테이블을 반복하려고한다. 최신 정보 내 메인 테이블에 정보가 있지만 알 수없는 이유로 작동하지 않습니다. 아래의 코드 첨부를 참조하십시오 :
테이블을 저장하는 내 목록의 샘플 :
DTs = {데이터 테이블 ( "Sheet1"), 데이터 테이블 ( "Sheet2") ......}
// 지정된 길에서 편도 사를 열면 잘 작동한다.
경로 = "$ DOCUMENTS \ 580501 \";
ftype = ".xlsx";
// 파일 목록을 만들고, 일치하지 않는 파일을 모두 제거하고, 잘 작동합니다.
flist = 디렉토리에있는 파일들 ( 통로 ) ;
에 대한 ( i = N 항목 ( 낚시꾼 ) , i> 0 , 나 ..
만약 ( !로 끝나다 ( 낚시꾼 [ 나는 ] , ftype ) ,
에서 제거 ( 낚시꾼, 나 )
)
) ;
d = N 항목 ( 낚시꾼 ) ;
// 디렉토리 580501에서 모든 excelfiles를 가져 와서 목록에 저장하면 잘 작동합니다.
동안 ( d> 0 ,
i = 1 ;
dtt = 열기 (....)
// 내 코드 의이 부분은 잘 작동합니다.
DTs = 목록 () ;
s = 1 ;
에 대한 ( i = 1 , i <= N 표 () , i ++,
만약 ( 데이터 표 ( 나는 ) ! = "ISAC_STAT",
에 집어 넣다 ( DTs, 데이터 테이블 ( 에스 ) ) ;
s = s + 1 ;
)
) ;
// DT에서 열려있는 모든 테이블을 파싱한다.
에 대한 ( i = 1 , i <= N 표 () , i ++,
dtt = 데이터 테이블 ( DT ( 나는 ) ) ;
// 하나의 특정 테이블 "sheet1"을 찾고 다른 테이블에 대해 업데이트 할 수 있어야합니다.
// sheet1은 다른 테이블과 일치하는 데 필요한 정보를 포함하므로 내 메인을 업데이트해야합니다.
// 첫 번째 테이블
에 대한 ( k = i, k <= N 표 () , k ++,
//나는 생각해 보자. If 문이 내 문제의 근원이지만 왜 그런지 모르겠다.
//이 If 문에서 여러 버전을 시도했습니다.
// 다음을 포함합니다 (Char (DTs [k]), Char ( ""데이터 테이블 ( "sheet1") ") == 1
// 포함 (DTs [k], "sheet1") == 1
// 포함 (DTs [k], "데이터 테이블 ("Sheet1 ")"== 1
//하지만 아무것도 작동하지 않습니다.
만약 ( 내용 ( 숯 ( DT [ 케이 ] ) , "sheet1" ) == 1 ,
데이터 표 ( "내 표" ) << 최신 정보 (
와 ( 데이터 표 ( "sheet1" ) ) ,
열 일치 ( : 배치 = : 로트 ) ,
업데이트 테이블에서 열 추가 ( 없음 )
) ;
) ;,,
) ;
// 나는 이것을 생각한다. If 문이 내 문제의 근원이지만 왜 그런지 모르겠다.
만약 (
DT [ 나는 ] ! = "sheet1"& DTs [ 나는 ] ! = "sheet2"& DTs [ 나는 ] ! = "sheet3"& DTs [ 나는 ] ! = "sheet4",
시험 (
데이터 표 ( "내 표" ) << 최신 정보 (
와 ( DT [ 나는 ] ) ,
열 일치 ( : 배치 = : 로트 | : 배치 = : 시험 롯트 ) ,
업데이트 테이블에서 열 추가 ( 없음 )
);
);
// 위와 같은 업데이트 명령을 사용하지만 다른 열과 일치 함
...
);
다음은 간단한 코드 스 니펫입니다.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// dt = DataTable("Big Class");
If (Contains(Char(dt),"Big Class"),
show("found")
,
show("not found")
)
Wendy가 Contains 함수가 대소 문자를 구분한다는 점을 지적하므로 대개 사례를 강제합니다.
If (Contains(LowerCase(Char(dt)),"big class"),
안녕 모두와 빠른 답변을 주셔서 감사합니다.
DT 목록에는 다음과 같은 값이있는 문자열이 저장됩니다. 데이터 표 ( "Sheet1" ) 그러므로 두 개의 특정 테이블을 찾고있는 중첩 된 for 루프를 구현하는 데 성공했습니다.
그러나 나중에 특정 유형의 테이블을 사용하지 않으려 고하고 어쩌면 이것이 오류가되는 경우에 contains 함수를 사용하여 DT의 문자열 값을 특정 키워드와 일치시킵니다.
예 :
(DTs [i], "soda")를 포함하거나 DTs [i], "water"를 포함하거나 DTs [i], "food_1"을 포함하는 경우,
아무것도하지 마세요
,
그렇지 않으면 메인 테이블을 갱신하십시오.
food_1 및 food_2 테이블이 모두있는 경우가 있습니다. 여기서는 food_1을 무시하고 food_2 만 사용해야합니다.
contains-function을 잘못 사용하고 있습니까?
여보세요,
크레이지 (Craige)의 요점 외에도, 찾고있는 문자열에 문제가 있습니다. DT 목록에 값을 삽입하면 데이터 테이블 ( "tableName")이 삽입됩니다. 따라서 DT 목록은 다음과 같습니다.
{Data Table( "Sheet1" ), Data Table( "Sheet2" )} ;
그러나 대부분의 Contains () 함수에서 DT 목록의 항목과 동일한 대소 문자 또는 패턴을 공유하지 않는 문자열 값을 검색하고 있습니다. "sheet1" . 이것은 이러한 Contains () 함수가 0을 반환하는 이유입니다. 다른 말로,
"Sheet1" != "sheet1"
요점은 검색 문자열이 Contains ()가 찾고자하는 값과 동일해야한다는 것입니다.