データテーブルがすでに開かれているかどうかを確認するにはどうすればよいですか?これは、JMP 8 より前に私が行っていた方法です。
tableIsOpen = Function( {tname},
{dt, rv = 0},
Try(
dt = Data Table( tname );
rv = 1;
);
rv;
);
テーブルがまだ開かれていない場合、DataTable 関数はファイル ダイアログを開くため、これは JMP バージョン 8 では機能しません。ユーザーはいつでも「キャンセル」を押すことができますが、面倒です。
助けていただきありがとうございます。
トミー
Re: データテーブルがすでに開かれているかどうかを確認するにはどうすればよいですか?コードをありがとう。今試しています。
開かれたデータファイルを確認するもっと簡単な方法があればいいのにと思います。Re: データテーブルがすでに開かれているかどうかを確認するにはどうすればよいですか?Data Table() に数値を渡して名前を比較することで、開いているすべてのテーブルをループできます。
tableIsOpen = Function( {tname},
{rv = 0, i},
For( i = 1, i < N Table() + 1 & rv == 0, i++,
If( Lowercase( Data Table( i ) << Get Name ) == Lowercase( tname ),
rv = 1
)
);
rv;
);
編集:「<=」オプションを使用
tableIsOpen = Function( {tname},
{rv = 0, i},
For( i = 1, i <= N Table() & rv == 0, i++,
If( Lowercase( Data Table( i ) << Get Name ) == Lowercase( tname ),
rv = 1
)
);
rv;
);
(フォーラム ソフトウェアは実際には以下を好みません。そのため、私は単純な未満と 1 を追加したものを使用しています。)
Re: データ テーブルがすでに開かれているかどうかを確認するにはどうすればよいでしょうか?コードのテスト中に、スクリプトの冒頭で開いているデータテーブルをカウントするのではなく閉じる方法を探していたら、このスレッドを見つけました。ここに投稿されたコードと別のスレッドに投稿されたコードを組み合わせて使用しました。このスレッドに出会った方に役立つかもしれないと思い、投稿します。
// list of table names that I want to make sure are closed before running the script
tname = { "TABLE1", "TABLE2", "TABLE3", "TABLE4" };
// loop to see if open tables match the name in the list above, then close them
// need to restart the i counter to i = 0 because it seems closing a table changes the 'i' number associated with the table
For( i = 1, i <= N Table(), i++,
If( N Rows (Loc( tname, Data Table(i) << Get Name ) ) > 0,
Close(Data Table(i), no save);
i = 0;
)
);
Re: データ テーブルがすでに開かれているかどうかを確認するにはどうすればよいでしょうか?Try()関数を使用して終了処理を簡素化します
</CODE></PRE>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
tname = {"TABLE1", "TABLE2", "TABLE3", "TABLE4"};
For Each( {dt}, tname,
Try( Close( data table( dt ), nosave ) )
);