JMP 式で見つかったすべての列名参照をリストに抽出し、特にその列の依存関係を特定したいと考えています。 JMP 式は非常に複雑になる場合があります。たとえば、列名を含む出力として JSL コードを作成する場合があります。 数式はそれらの列名に依存しないため、これらの列名には興味がありません。 私が興味があるのは、結果の計算に使用される列名だけです。 プログラムで数式を解析せずにこれを行う簡単な方法はありますか?
これが私の最初の計画のスケッチです。
数式を文字列に変換し、3 つの要素: :、:\!"、\!" を検索します。
- まずすべての引用符を削除します。 前に : を付けずに最初の \!" を見つけてから、それに一致する \!" を見つけます。前に : を付けず、多重エスケープ引用符も付けません。 これを数式内の引用として認識し、削除 (またはスキップ) します。 次に、式全体に対して繰り返します
- 次に、文字列で名前を検索します
- : が見つかった場合は、カンマなどの「名前破壊」文字が見つかるまで続行します。 文字列形式の名前の 1 つとして保存します
!" が見つかった場合は、\!"n が見つかるまで続行します。 名前文字列を名前の 1 つとして保存します
- 最後に、名前のリストの重複を除去して、一意になるようにします。
これを行うよりエレガントな方法はありますか?
そうでない場合、上記の何が問題になるのでしょうか? 数式で列名を指定できる他の方法はありますか?
数式は数式エディターで従来のポイント アンド クリックによって作成され、JSL コードは使用されていないと仮定します。 したがって、たとえば、列参照を解決するために数式で Parse() を使用する JSL コードは範囲外になります。 でも、それもできたらいいですね:)。
いくつかのアイデアを与える可能性のある投稿をいくつか紹介しますHead Arg 再帰式(文字列変換を避けるには、このようなものを使用します)、 JSLコードの数式で使用される列名を自動的に抽出するにはどうすればよいですか?