테이블을 목록으로 읽는 방법은 무엇입니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />열 이름이 의미 없는 "dt" 테이블이 있다고 가정해 보겠습니다.
그리고 두 개의 열이 있는 "dt_source" 테이블이 있습니다. 한 열은 의미 없는 이름이고 다른 하나는 해당하는 의미 있는 이름을 갖습니다.
의미 없는 열의 이름을 의미 있는 열 이름으로 바꾸는 스크립트를 작성하려고 합니다.
열이 다를 수 있으므로 해당 값을 사용하여 마스터 테이블 "dt_source"를 생성하겠습니다.
이제 스크립트 내의 목록에서 무의미하고 기울어진 이름을 가져와 의미 없는 이름이 존재하는 경우 각 쌍에 대해 열의 이름을 바꾸는 스크립트가 준비되었습니다.
목록에 입력되지 않은 해당 쌍을 가져올 수 있기를 원합니다.
name_in={"col1", "col2"};
name_out={"나이", "키")
하지만 테이블에서.
dt_name_source를 name_in과 name_out의 두 목록으로 어떻게 읽나요?
지금까지 나는 이것을 가지고 있습니다 :
이름의 기본값은 여기에 있습니다. ( 1 ) ;
노력하다 ( dt_소스 = 데이터 테이블 ( "이름변경.jmp" ) , 던지다 ( "데이터 테이블을 열려고 합니다" )) ;
만약에 ( 아니다 ( 스크립팅 가능 ( dt_소스 ) ) ,
dt_소스 = 열려 있는 ( "이름변경.jmp" ) , dt_소스 = 데이터 테이블 ( "이름변경.jmp" ) ;
) ;
현재 데이터 테이블 ( dt_소스 ) ;
이름_인 = 목록 () ;
이름_아웃 = 목록 () ;
col_name_in = 열 ( "name_in" ) ;
col_name_out = 열 ( "이름_아웃" ) ;
나 = 0 ;
각 행에 대해 ( 이름_인 [ 나 ] = col_name_in [] ; 이름_아웃 [ 나 ] = col_name_out [] ; 나 ++ ) ;
그러나 그것은 그것을 좋아하지 않습니다:
'Assign', name_in의 액세스 또는 평가 시 아래 첨자 문제{1} = /*###*/col_name_in[] /*###*/
변수 만 시도하면
각 행에 대해 ( 이름_인 = col_name_in [] ; 이름_아웃 = col_name_out [] ) ;
그러면 괜찮습니다. 하지만 주기가 진행됨에 따라 다른 값을 취하는 하나의 변수일 뿐입니다.
그리고 목록이 필요해요.
누군가 이것을 처리하는 방법에 대한 아이디어를 줄 수 있습니까?
감사해요!
Re: 테이블을 목록으로 읽는 방법은 무엇입니까?나는 아마도 일을 조금 다르게 할 것입니다.
이름의 기본값은 여기( 1 )입니다.
// 변경할 데이터 테이블에 대한 포인터
dt = data table("변경할 테이블 이름");
for(i=1, i<=N 항목(name_out), i++,
If(try(열(dt, name_in ) << 이름 가져오기, "") != "", 열( dt, name_in ) << 이름 설정(name_out )));
);
Re: 테이블을 목록으로 읽는 방법은 무엇입니까?짐,
현재로서는 잘 작동하는 것 같습니다. 이것이 올바른 작업 방법인지 알려주세요.
for(i=1, i<=N 항목(name_out), i++,
쇼(i); If( !Is Missing( 스크립트 가능( Try( Column( name_in ) ) ) ), col=Column(이름_in )<<세트 이름(name_out );
표시(열); 표시(i))
) ;
Re: 테이블을 목록으로 읽는 방법은 무엇입니까?짐,
답장을 보내 주셔서 감사합니다. 잘 작동합니다.
그러나 name_in의 이름 중 하나가 포함된 열이 없으면 이름 바꾸기 코드가 작동하지 않는다는 사실을 발견했습니다(그리고 NameChanging.jmp 테이블의 모든 이름이 없는 열이 테이블에 있는 경우가 종종 있습니다).
지금까지 나는 이것을 가지고 있습니다 :
for(i=1, i<=N 항목(name_out), i++,
쇼(i); Try(col=Column(name_in )<<세트 이름(name_out ), Throw("열을 찾을 수 없습니다");
표시(열)); 쇼(i)
)
그러나 테이블의 name_in에서 첫 번째 이름을 찾지 못하면 첫 번째 반복 후 주기가 중단됩니다.
Re: 테이블을 목록으로 읽는 방법은 무엇입니까?나는 다음 스크립트가 필요한 목록에 값을 가져올 것이라고 믿습니다.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
만약에 ( 노력하다 ( dt_소스 << 이름을 얻고, "" ) != "이름 변경" ,
dt_소스 = 열려 있는 ( "이름변경.jmp" )
) ;
이름_인 = dt_소스 : 이름_인 << 값을 얻습니다.
이름_아웃 = dt_소스 : 이름_아웃 << 값을 얻습니다.