現在のスクリプトの名前を取得する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />スクリプトによって作成されたレポートにスクリプトの名前を追加する方法を見つけようとしています。 これは、ある時点でスクリプト名のテキスト文字列を取得する必要があることを意味します。 スクリプトファイルディレクトリを作成できます。
sDir = Get Default Directory();
およびそのディレクトリ内のファイル:
lFiles =ファイル内のディレクトリ(sDir);
しかし、現在実行しているスクリプトのファイル名だけを取得する方法が見つかりませんでした。 問題は、後で保存されたレポートを見つけるときに、そのレポートを作成するために実行されたスクリプトを正確に知りたいということです。
助けてください。
Re:現在のスクリプトの名前を取得します私はJMPにかなり慣れていないので、この関数がどのくらいの期間使用されているかわかりません。同様の問題を解決しようとしているときにこの関数を自分で見つけましたが、関数「Include FileList()」は次のリストを返すようです。実行中のスクリプトのコンテキストにあるファイルを開きます。 (ちなみに、この関数の説明は、スクリプトインデックスまたはオンラインリソースのほとんどの関数/メソッド/メッセージの場合と同様に、一種の有益なものにすぎません。)
スクリプトによって他の何かが開かれる前にこの関数がスクリプトの先頭で実行されると、その時点で返される唯一のパスであるため、スクリプトファイルパスとスクリプトファイル名をそこから抽出できるようです。
JMPで開いている他のファイルでテストし、Windowsエクスプローラーからダブルクリックしてスクリプトを実行したとき(スクリプトの上部に「//!」を含めて、スクリプトエディターウィンドウを開かずに開いた状態で実行するようにスクリプトを設定しました) )、返されたそのスクリプトのパスのみを取得します。 開いている他のファイルは返されません。
Re:現在のスクリプトの名前を取得しますそれはまさに私がしたことでした。 ありがとうございました
Re:現在のスクリプトの名前を取得します質問を投稿する前に、ほぼ同じスクリプト(「For」ループ)を思いつきました。 それに関する問題は、それが返すスクリプトが現在のものであるかどうかわからないということです。 たとえば、同じスクリプトが同じフォルダ内の異なるバージョンで保存されている場合、.jslファイルのリストが表示されます。 同じ場所に同じ名前のスクリプトがいくつ保存されていても、実行中の現在のスクリプトの名前を取得する必要があります。
Re:現在のスクリプトの名前を取得しますスクリプトがスクリプトウィンドウから実行される場合、以下の例の直接的なアプローチでファイル名がわかります。
scr_name = Current Window() << get window title;
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("My Report", Bivariate(Y(:weight), X(:height)), Text Box(scr_name));
Re:現在のスクリプトの名前を取得しますそれを行う方法があるかどうかわからない。各スクリプトの先頭に変数を設定しました。少し面倒ですが、デバッグに役立ちます。
pname = 「MyScript.JSL」 ;
Re:現在のスクリプトの名前を取得します使用してみてください:
含まれています(lFiles 、 「script.jsl」 )。 ;
これを使用して「.jmp」を使用してJMPテーブルを検索しましたが、うまくいきました。
または、質問を間違えた場合は、ディレクトリ内のファイルの数をループして、次のようなスクリプトファイル名を取得する別の方法があります。
為に(( n = 1 、 n <= Nアイテム(( lFiles )。 、 n ++、
ファイル= lファイル[ n ] ;
もしも((
で終わる((ファイル、 「.jsl」 )。 、/*自分のことをしてください*/;
壊す();
);
);