데이터 테이블을 함수의 인수로 보내는 방법여러분, 안녕하세요,
그래서 나는 한동안 이 일을 하려고 노력해 왔지만 머리를 감을 수가 없습니다.
몇 가지 다른 폴더에서 여러 그림을 내보내는 스크립트를 만들고 있습니다. "가져오기" 기능과 "트림" 기능을 만들었습니다.
Import = Function ({path},
dtimport= Multiple File Import (
// the import arguments
)<< Import Data;
Return (dtimport);
};
Trimtables = Function ({table, arg1, arg2, arg3},
table:Image<<SET name=""></SET>따라서 이 테이블을 다듬기 기능의 인수로 보내기 전까지는 잘 작동합니다.
나는 dt1이 내 실제 테이블이 아니라 단지 포인터라는 것을 이해하고, 내가 그것을 테이블에 직접 보내면 함수는 해당 포인터에 대한 포인터만 갖게 될 것입니다. 그래서 나는 다음을 사용해 보았습니다.
dt1<<SET name=""></SET>
잘 작동합니다. 문제는 각 테이블에 사용자 정의 제목을 사용하지 않으려는 경우입니다. 나는 다음을 시도했다 :
Trimtables (dt1<<GET name=""></GET>
그러나 이것은 작동하지 않습니다. 나는 (함수에서 기대하는 것을 변경하면서) 다양한 변형을 시도했습니다.
Trimtable (Char(dt1<<GET name=""></GET>
하지만 아무것도 작동하지 않는 것 같습니다. 본질적으로 나에게 필요한 것은 C에서 &datatable을 인수로 보내는 것과 같습니다. 나는 이것이 꽤 사소한 것이라고 확신하지만 나에게는 그 문제에 대해 머리를 숙일 수 없습니다.
어떤 아이디어가 있나요?
감사해요,
단발
Re: 데이터 테이블을 함수의 인수로 보내는 방법Craige_Hales님, 감사합니다.
당신이 당신의 글을 게시했을 때 나는 답글을 쓰고 있었습니다. 다행히도 우리는 같은 결론을 얻었습니다 
Re: 데이터 테이블을 함수의 인수로 보내는 방법안녕하십니까?
빠른 답변 감사합니다.
나는 Show와 매우 유사하다고 생각되는 Caption 기능을 사용하고 있는데, 오류가 발생하자마자 꽤 지저분해지는 로그에 쓰는 대신 다른 모든 것 위에 표시된다는 추가 이점이 있습니다.
나는 작동하는 다음 코드를 만들었습니다.
Names Default To Here( 1 );
Mydt = Function({},
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt<<SET name=""></SET>따라서 이는 데이터 테이블 이름을 참조로 사용하고 거기에서 작업하는 것이 실제로 가능하다는 것을 알려줍니다.
문제는 다중 파일 가져오기 기능으로 생성된 테이블에 이 코드를 사용하려고 하면 더 이상 작동하지 않고 다른 문제가 발생하고 있다는 것입니다.
다중 가져오기로 테이블을 생성할 때 jmp는 객체를 데이터 테이블이 아닌 다른 것으로 간주한다고 생각합니다. get name 함수를 사용하면 일반적인 인용 문자열이 아니라 목록이 반환됩니다.
"mydt" 함수에서 다음을 사용하면 이제 작동하는 것 같습니다.
m = dt[1] <<GET name=""></GET>
그래도 이건 좀 이상한 느낌이에요. 여러 파일을 가져오면 이런 동작이 발생하는 이유에 대해 알고 계시나요?
Re: 데이터 테이블을 함수의 인수로 보내는 방법MFI는 테이블이 하나만 있는 경우에도 열린 테이블 목록을 반환합니다. 가져오기 기능의 결과는 아마도 단일 항목이 포함된 목록일 것입니다. { 데이터테이블("pictures.jmp") } 또는 유사합니다. 아마도 다음과 같은 것이 필요할 것입니다.
TrimTable( dt1[ 1 ] )
목록에서 첫 번째 데이터 테이블을 가져옵니다.
Re: 데이터 테이블을 함수의 인수로 보내는 방법무슨 일이 일어나고 있는지 확인하려면 함수 안에 show 문을 넣어보세요.이 코드 조각은 정상적으로 작동합니다.
fn1 = function({tbl_path},
dt_fn1 = open(tbl_path);
dt_fn1;
);
fn2 = function({tbl, arg1, arg2},
show(tbl, arg1, arg2);
tbl:height << set name("New Name");
);
dt = fn1("$sample_data\Big Class.jmp");
show(dt);
fn2(dt, "Hello", "World");
Re: 데이터 테이블을 함수의 인수로 보내는 방법물론 나는 이것을 시도했습니다.
Trimtables (Data Table (dt1<<GET name=""></GET>
Get Name() 명령은 일반 문자열을 반환하지 않고 "!\ "data table name" !\"과 같은 이상한 문자열을 반환하는 것 같습니다.
최후의 수단으로 해당 문자열을 잘라서 특수 문자를 제거할 수도 있겠지만 그건 절박한 조치처럼 들립니다.