32_ja-JP
スクリプト: 引用符で囲まれた文字列から Name オブジェクトを取得するにはどうすればよいですか?実行時変数にテーブル変数の名前が引用符で囲まれた文字列として含まれていると仮定します。 そこからテーブル変数 Name オブジェクトを取得するにはどうすればよいですか?
テーブルの列でも同じ問題が発生しましたが、テーブルの列名のリストを取得し、文字列に一致する Name オブジェクトが見つかるまでそれらを反復処理することで回避できました。 残念ながら、テーブル変数を返す関数はないようなので、このメソッドは機能しません。
背景:
この目的は、列に数式を埋め込むことができる再利用可能なライブラリを作成することです。 再利用コードはテーブル変数名や列名を知らないため、それらを文字列パラメータとして関数に渡す必要があります。 ただし、数式を作成するときに文字列変数を使用すると、結果は列変数またはテーブル変数への参照ではなく、引用符で囲まれた文字列になります。Re: スクリプト: 引用符で囲まれた文字列から Name オブジェクトを取得するにはどうすればよいですか?次のコマンドを使用すると、文字列からテーブル変数の値を取得できます。
x = 現在のデータ Table() << Get Table Variable( "Teacher" );
そして、次のようにして列の値を取得できます
x = 列("高さ")[1];
式はより複雑なメタプログラミング (JSL を操作する JSL) に使用できますが、文字列から始めるため、Parse() と Eval() を使用する方がよいでしょう。たとえば、次の例では関数名の文字列を取得し、それを関数名として扱います。
s = "平方根"; x = Eval( Parse( s || "(2)" ));Re: スクリプト: 引用符で囲まれた文字列から Name オブジェクトを取得するには?Parse() はまさに私が求めていたコマンドでした。1週間前に知っていればよかったのに! 
ありがとう!
追記:少し早とちりでした。テーブル変数名に括弧が含まれている場合、Parse() は機能しません。(例:「Width (mm)」)もう少し検討する必要があります。
メッセージはDaveSによって編集されました。Re: スクリプト: 引用符で囲まれた文字列から Name オブジェクトを取得するには?うまくいく方法を見つけました。
-----------------------------スクリプト開始-----------------------------
グローバル変数をクリアする();
ログをクリアする();
MyParse = 関数(
{sName}、{Default Local}、
ex = "名前(xxx)";
newStr = "\!"" || sName || "\!"";
retVal = Munger(ex, 0, "xxx", newStr);
retVal = Parse(retVal);
);
str = "幅 (mm)";
name = MyParse(str);
show(name);
-----------------------------スクリプト終了-----------------------------
もちろん、これは名前である文字列の解析に限定されます。ご協力ありがとうございました!
Comments
There are no comments yet