열, 열 이름 및 테이블 이름을 새 테이블에 복사<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요,
여러 데이터 테이블의 열을 새 빈 테이블로 복사하는 데 약간의 문제가 있습니다. 열려는 데이터 테이블은 모두 동일한 열 이름을 가집니다.
지금까지는 여러 테이블을 열 수 있지만 가장 최근에 연 데이터 테이블의 열만 복사할 수 있습니다.
아래 코드는 다음과 같습니다.
여기에 기본 이름 ( 1 ) ;
// 'PickFile()'을 사용하여 열려는 파일 목록 가져오기(Windows만 해당)
파일목록 = 파일 선택 (
"더 많은 파일 중 하나 선택" , // 즉각적인
"$데스크탑" , // 초기 폴더
{ "JMP 파일|jmp;jsl;jrn;csv" , "모든 파일|*" } , // 적용할 파일 필터 목록(OS/X에서는 무시됨)
1 , // 적용할 초기 파일 필터(위 목록 항목의 인덱스)
0 , // 저장 플래그 - '저장' 또는 '열기' 창을 지정합니다. 값을 각각 1 또는 0으로 설정합니다.
비어 있는 () , // 기본 파일
다수의 // 다중 - 하나 이상의 파일을 열 수 있습니다(OS/X에서는 무시됨).
) ;
// 단일 파일만 선택된 경우 fileList는 목록이 아니므로 직접 빌드해야 합니다.
만약에 ( ! 목록입니다 ( 파일 목록 ) ,
파일 목록 = 평가 목록 ( { 파일 목록 } )
) ;
// 파일을 열고 해당 JMP 테이블 이름을 저장합니다.
테이블 이름 = {} ;
을 위한 ( 에프 = 1 , 에프 <= N개 항목 ( 파일 목록 ) , 에프 ++,
dt = 열려 있는 ( 파일 목록 [ 에프 ] ) ;
에 집어 넣다 ( 테이블 이름 , dt << getName ) ;
) ;
//파일 복사를 위한 Column Copier 생성
col_dlg = 새창 ( "컬럼 복사기" ,
패널박스 ( "4개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다." ,
col_clist = 콜리스트박스 ( 모두 , 너비 ( 200 ) , 최대 선택 ( 4 )) ,
) ,
버튼박스 ( "좋아요" ,
선택된_열_목록 = col_clist << getselected ;
열1 = 선택된_열_목록 [ 1 ] ;
열2 = 선택된_열_목록 [ 2 ] ;
col3 = 선택된_열_목록 [ 삼 ] ;
열4 = 선택된_열_목록 [ 4 ] ;
// 선택한 두 열만 사용하여 새 테이블 생성
dt2 = dt << 하위 집합 ( 열 ( 열 ( dt , 열1 ) , 열 ( dt , 열2 ) , 열 ( dt , col3 ) , 열 ( dt , 열4 ) ) ) ;
col_dlg << 창 닫기 ;
)
) ;
참고: 생성된 새 데이터 테이블은 여러 데이터 t에서 열린 최신 데이터 테이블의 하위 집합입니다. 할 수 있는. 데이터 테이블의 열을 새 테이블로 복사하는 것을 선택할 수 있기를 바랍니다. 감사합니다.
Re: 열, 열 이름 및 테이블 이름을 새 테이블에 복사정말 감사합니다. 나는 그것이 문제라고 생각했습니다. 마지막 도움이었습니다. 연결은 수직이었습니다. 데이터 테이블을 가로로 연결하려고 합니다. 그래서 "연결" 대신 "조인"을 사용했지만 함께 결합하는 대신 2개의 개별 데이터 테이블이 열립니다.
Re: 열, 열 이름 및 테이블 이름을 새 테이블에 복사오류....내 오류였던 오류가...라인에 있습니다.
Insert Into( tableNames, dt << getName );
줄은 다음과 같아야 합니다.
Insert into( tableNames, dttemp << getName );
Re: 열, 열 이름 및 테이블 이름을 새 테이블에 복사데이터 테이블을 확인했지만 여전히 하나만 열립니다. 아래 로그에서 얻은 오류는 다음과 같습니다.
이름 미해결: 'dt' , dt/*###*/의 액세스 또는 평가에서 dt
다음 스크립트에서 /*###*/로 표시된 오류
여기에 기본 이름( 1 );
fileList = 파일 선택(
"더 많은 파일 중 하나 선택",
"$데스크탑",
{"JMP 파일|jmp;jsl;jrn;csv", "모든 파일|*"},
1,
0,
비어 있는(),
다수의
);
If( !Is List( fileList ),
fileList = 평가 목록( {fileList} )
);
테이블 이름 = {};
For( f = 1, f <= N 항목( fileList ), f++,
dttemp = Open( 파일 목록);
Insert Into( tableNames, dt/*###*/ <
만약( 에프 == 1,
dt = dttemp,
dt << concatenate( dttemp, 첫 번째 테이블에 추가( 1 ) );
닫기( dttemp, nosave );
);
);
col_dlg = 새 창( "열 복사기",
패널 상자( "4개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다.",
col_clist = 열 목록 상자( 전체, 너비( 200 ), 최대 선택됨( 4 ) )
),
버튼 상자( "확인",
selected_column_list = col_clist << getselected;
col1 = selected_column_list[1];
col2 = selected_column_list[2];
col3 = selected_column_list[3];
col4 = selected_column_list[4];
dt2 = dt << 부분 집합(
열(
열( dt, col1 ),
열( dt, col2 ),
열( dt, col3 ),
열( dt, col4 )
)
);
col_dlg << 창 닫기;
)
Re: 열, 열 이름 및 테이블 이름을 새 테이블에 복사4개의 파일을 각각 읽고 첫 번째 파일에 추가하도록 코드를 수정했습니다.따라서 최종 결과는 파일이 하나만 있지만 각 파일의 모든 데이터가 그 안에 있어야 합니다.
코드를 완전히 테스트할 수 없으므로 약간의 문제가 있을 수 있습니다.내가 변경한 유일한 코드는 For 루프에 있었습니다.코드를 다시 실행한 다음 로그 보기==>로그를 보고 오류가 무엇인지 확인하십시오.또한 데이터 테이블을 체크인하고 모든 데이터가 데이터 테이블에 포함되었는지 확인하십시오.
Re: 열, 열 이름 및 테이블 이름을 새 테이블에 복사안녕 짐,
도움을 주셔서 감사하지만 여전히 작동하지 않습니다. 이번에 새 코드를 실행하면 컬럼 복사기가 뜨지 않고 열고자 하는 파일만 뜨네요.
Re: 열, 열 이름 및 테이블 이름을 새 테이블에 복사아래 코드는 각 파일을 읽은 다음 하나의 데이터 테이블로 연결한 다음 열 복사기에 의해 처리됩니다.
여기에 기본 이름 ( 1 ) ;
// 'PickFile()'을 사용하여 열려는 파일 목록 가져오기(Windows만 해당)
파일 목록 = 파일 선택 (
"더 많은 파일 중 하나 선택" , // 즉각적인
"$데스크탑" , // 초기 폴더
{ "JMP 파일|jmp;jsl;jrn;csv" , "모든 파일|*" } , // 적용할 파일 필터 목록(OS/X에서는 무시됨)
1 , // 적용할 초기 파일 필터(위 목록 항목의 인덱스)
0 , // 저장 플래그 - '저장' 또는 '열기' 창을 지정합니다. 값을 각각 1 또는 0으로 설정합니다.
비어 있는 () , // 기본 파일
다수의 // 다중 - 하나 이상의 파일을 열 수 있습니다(OS/X에서는 무시됨).
) ;
// 단일 파일만 선택된 경우 fileList는 목록이 아니므로 직접 빌드해야 합니다.
만약에 ( ! 목록입니다 ( 파일목록 ) ,
파일 목록 = 평가 목록 ( {fileList} )
) ;
// 파일을 열고 해당 JMP 테이블 이름을 저장합니다.
테이블 이름 = {} ;
을 위한 ( 에프 = 1 , 에프 <= N개 항목 ( 파일목록 ) , 에프 ++,
dttemp = 열려 있는 ( 파일목록);
에 집어 넣다 ( 테이블 이름 , dt << getName ) ;
// 데이터 테이블을 함께 추가
만약에 ( 에프 == 1 ,
dt = dttemp ,
dt << 사슬 같이 잇다 ( dttemp , 첫 번째 테이블에 추가( 1 ) ) ;
닫다 ( dttemp , nosave ) ;
) ;
) ;
//파일 복사를 위한 Column Copier 생성
col_dlg = 새창 ( "컬럼 복사기" ,
패널 박스 ( "네 개의 열을 선택하여 다음을 사용하여 새 테이블을 생성합니다." , col_clist = 열 목록 상자 ( 모두 , 너비( 200 ) , 최대 선택( 4 ) ) , ) ,
버튼 박스 ( "좋아요" ,
선택된_열_목록 = col_clist << getselected;
열1 = 선택된_열_목록[ 1 ] ;
열2 = 선택된_열_목록[ 2 ] ;
col3 = 선택된_열_목록[ 삼 ] ;
열4 = 선택된_열_목록[ 4 ] ;
// 선택한 두 열만 사용하여 새 테이블 생성
dt2 = dt << 하위 집합 ( 열( 열 ( dt , 열1 ) , 열 ( dt , 열2 ) , 열 ( dt , 열3 ) , 열 ( dt , col4 ) ) ) ;
col_dlg << 창 닫기;
)
) ;