이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert())) 방법이 있습니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />루프에서 변수를 만들려고 할 때마다 항상 Eval, Parse 및 Eval Insert를 사용했습니다. 아래에 예가 나와 있습니다.
For(i=0 , i < N Table(), i++,Eval(Parse(Eval Insert("Variable^i^"))));위의 방법은 잘 작동하지만 스크립트가 거대해짐에 따라 점점 더 많은 변수와 작업을 따옴표 안에 넣어야 하므로 디버깅이 정말 어려워집니다. Eval, Parse, Eval Insert 방법 외에 이동 중에 변수를 생성하는 다른 방법이 있습니까?
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?현재로서는 eval을 제거하는 방법을 아는 유일한 방법은 Ian의 방법을 사용하는 것입니다. 이 방법을 사용하면 디버깅이 조금 더 좋아집니다. 내가 평가한 항목 내부에서 발생하는 오류가 로그에 표시되지 않아 디버깅이 조금 더 어려워진다는 것을 깨달았기 때문입니다.
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?방금 비슷한 작업을 수행해야 했고 일련의 표현식이 트릭을 수행했습니다.~에서 멀어지지 않는다 평가 그렇지만.다음은 항목을 설명하는 코드 예제입니다.
tb_expr = {} ;
tb_expr [ 1 ] = 특급 ( 목록 상자 ( 텍스트 상자 ( "1: " ) , 텍스트 상자 ( "첫 번째" ))) ;
tb_expr [ 2 ] = 특급 ( 목록 상자 ( 텍스트 상자 ( "2: " ) , 텍스트 상자 ( "두번째 것" ))) ;
tab_expr = 특급 (
test_tab << 바꾸다 ( 1 , "테스트 탭" , 평가 ( tb_expr [ 색인 ])) ;
) ;
nw = 새창 ( "시험" ,
목록 상자 ( 버튼 박스 ( "하나" ,
색인 = 1 ;
tab_expr ;
) ,
버튼 박스 ( "둘" ,
색인 = 2 ;
tab_expr ;
) ,
) ,
test_tab = 탭 상자 ( "테스트 탭" , 평가 ( tb_expr [ 1 ]))
) ;
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?안타깝게도 그러한 목록을 알지 못합니다. 그러나 그것이 효과가 없다면 곧 알게 될 것입니다!
(제 생각에 JMP 10에서는) 'SliderBox{}'가 첨자화되지 않았기 때문에 조금 더 작업을 해야 했던 것으로 기억합니다. 이 문제는 이후에 수정되었을 수 있습니다.
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?안녕 이안,
displayBoxes를 목록에 저장하는 방법을 지적해 주셔서 감사합니다. 숫자 편집 상자 대신 콤보 상자에 대해 시도하겠습니다. 그런데. 첨자를 붙일 수 있는 디스플레이 상자의 전체 목록을 어디에서 얻을 수 있는지 아십니까?
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?이것은 당신에게 단서를 줄 수 있습니다. 표시 상자의 일부(그러나 마지막으로 확인했을 때 전부는 아님)에는 첨자 가능한 lvalue가 있습니다.
NamesDefaultToHere ( 1 ) ;
// '동적' UI 빌드 . . .
N = 6 ;
럽 = 라인업박스 ( NCol ( 1 )) ;
넵 = {} ;
을 위한 ( 나 = 1 , 나 <= N , 나 ++,
에 집어 넣다 ( 넵 , NumberEditBox ( . )) ;
럽 << 추가 ( 넵 [ 나 ]) ;
) ;
nw = 새창 ( "숫자 편집 상자 목록" , 럽 , 버튼박스 ( "좋아요" , OK스크립트 )) ;
// 'OK'를 눌렀을 때 사용자 입력 값 가져오기 . . .
OK스크립트 =
만료 (
nw << 닫기창 ;
을 위한 ( 나 = 1 , 나 <= N , 나 ++, 인쇄 ( 넵 [ 나 ] << 얻다 ))
) ;
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?변수가 많은 경우 목록이나 행렬 구조가 도움이 될까요?또는 연관 배열?
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?예를 들어, 아래에서 동일한 양을 만들고 싶습니다...

열려 있는 각 데이터 테이블에 대해, 따라서 매번 생성되는 콤보 상자 또는 버튼 상자의 양은 열린 데이터 테이블의 양에 따라 달라집니다.
그리고 추적 목적으로 각 콤보 상자와 버튼 상자에 할당된 변수가 있습니다(그리고 거기에 있어야 합니다). 따라서 매번 Eval, Parse 및 Eval Insert를 사용하여 변수를 생성하는 것 외에는 선택의 여지가 없습니다. 그래서 내가 생성하는 각 콤보/버튼 상자를 추적하는 변수를 갖게 됩니다.
Eval( Parse( Eval Insert( " if(DTopened > 1, lbBB^i^ = Border Box( H List Box( dtListBox^i^ = Combo Box( listofdtnames ), Picture Box( img ), Combo Box( test ), BBox^i^ = Button Box( \!"Fetch Temperature\!" ) ) ); " ) ) );
Eval, Parse 및 Eval Insert를 제거하고 더 간단한 것을 사용하는 방법이 있습니까?
편집: 코드가 변수 "i" 루프가 있는 for 루프 안에 있다는 것을 언급하는 것을 잊었습니다.
Re: 이동 중에 변수 이름을 만들 때 대체 Eval(Parse(Eval Insert()))하는 방법이 있습니까?JSL은 수많은 디자인 패턴을 지원하며 일부는 명확하지 않을 수 있습니다. '루프에서 변수 생성'을 원하는 경우에 대한 보다 구체적인 예를 들어주실 수 있습니까? 이러한 변수를 실제로 사용하려는 다음 단계도 나타냅니다.