外出先で変数名を作成するときに 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:」 ) 、テキストボックス( "最初の1つ" ))) ;
tb_expr [ 2 】 =式(リストボックス(テキストボックス( 「2:」 ) 、テキストボックス( "二つ目" ))) ;
tab_expr =式(
テストタブ<<交換( 1 、 「テストタブ」 、評価( tb_expr [索引])) ;
) ;
新しい=新しい窓( "テスト" 、
リストボックス(ボタンボックス( "一" 、
索引= 1 ;
tab_expr ;
) 、
ボタンボックス( "二" 、
索引= 2 ;
tab_expr ;
) 、
) 、
テストタブ=タブボックス( 「テストタブ」 、評価( tb_expr [ 1 ]))
) ;
Re: 外出先で変数名を作成するときに Eval(Parse(Eval Insert())) を置き換える方法はありますか?残念ながら、私はそのようなリストを知りません。 しかし、それがうまくいかないかどうかはすぐにわかります。
(JMP 10 ではだと思います)、「SliderBox{}」は添え字付きではなかったので、もう少し作業する必要があったことを覚えています。 これは後で修正された可能性があります。
Re: 外出先で変数名を作成するときに Eval(Parse(Eval Insert())) を置き換える方法はありますか?こんにちは、イアンさん
displayBox をリストに保存する方法をご指摘いただきありがとうございます。 数値編集ボックスではなくコンボボックスでこれらを試してみます。 ところで。 サブスクリプト可能な表示ボックスの完全なリストをどこで入手できるかご存知ですか?
Re: 外出先で変数名を作成するときに Eval(Parse(Eval Insert())) を置き換える方法はありますか?これでヒントが得られるかもしれません。 表示ボックスの一部 (ただし、最後に確認したときはすべてではありませんでした) には添え字可能な左辺値があります。
名前デフォルトここへ( 1 ) ;
// 「動的」 UI を構築します。 。 。
n = 6 ;
ルブ=ラインアップボックス( Nコル( 1 )) ;
ネブス= {} ;
ために(私= 1 、私<= n 、私++、
挿入する(ネブス、数値編集ボックス( 。 )) ;
ルブ<<追加(ネブス[私]) ;
) ;
新しい=新しい窓( 「数値エディットボックス一覧」 、ルブ、ボタンボックス( "OK" 、 OKスクリプト)) ;
// 「OK」が押されたときにユーザー入力値を取得します。 。 。
OKスクリプト=
エクスプレッション(
新しい<<ウィンドウを閉じる;
ために(私= 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 は多数の設計パターンをサポートしていますが、中には自明ではないものも含まれます。 「ループ内で変数を作成する」場合のより具体的な例を挙げていただけますか。これは、そのような変数を実際にどのように使用するかについての次のステップも示しています。