列名の一部として「=」をエスケープするにはどうすればよいですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />列名の一部として「=」をエスケープするにはどうすればよいですか?
「selectwhere」ステートメントを実装する必要があり、複数の列名を含む文字列として作成しています。 しかし、それが評価するとき、それは「=」を割り当てとして解釈しようとしています。 私の列名は「COND=TEMP」のようなものです。
私が使用するスクリプトのセクションの下:
select_string = ":Test Name == branchNameToCompare" ;
//マップテーブルの各列について、列名がCONDの場合は、選択基準に追加します
為に(( j = 1 、 j <= numOfColumns 、 j ++、
現在のデータテーブル((相関マップテーブル)。 ;
currentColumnName =相関マップテーブル<<列名を取得する() ;
もしも((含まれています(( currentColumnName [ j ] 、 「COND_」 )。 >> 0 、
値= currentColumnName [ j ][私] ;
colName = currentColumnName [ j ] ;
select_string = select_string || "&As Column(correlationMapTable、" || char (( currentColumnName [ j ]) || ")==" || char (( currentColumnName [ j ][私]) ;
)。 ;
)。 ;
select_string = "benchDataTable << select where(" || select_string || ")" ;
eval ((解析する(( select_string )) ; //列名の一部に「=」が含まれていると文句が表示されます。
ベンチデータテーブル<<サブセット(((選択した行)。 、出力テーブル名(( 「フィルター付きベンチテーブル」 )) ;
前もって感謝します!
Re:列名の一部として "="をエスケープするにはどうすればよいですか?はい、引用符です。キャッチしてくれてありがとう。
エスケープ文字とJSLのニュアンスの詳細については、非常によくまとめられたスクリプトガイドを参照してください。ヘルプ>>本>>スクリプトガイド。(エスケープ文字はp.87にあります)。構文について疑問がある場合は、スクリプトインデックスの方が便利です。ヘルプ>>スクリプトインデックス。
指摘すべきことがいくつかあります。
If()ステートメントの数値の場合、JSLは0以外のすべてに正直に応答します。もしも((含まれています(( currentColumnName [ j ] 、 「COND_」 )。 >> 0、はと同じですもしも((含まれています(( currentColumnName [ j ] 、 「COND_」 )。 、
これ:
//マップテーブルの各列について、列名がCONDの場合は、選択基準に追加します
為に(( j = 1 、 j <= numOfColumns 、 j ++、
現在のデータテーブル((相関マップテーブル)。 ;
currentColumnName =相関マップテーブル<<列名を取得する() ;
もしも((含まれています(( currentColumnName [ j ] 、 「COND_」 )。 >> 0 、
値= currentColumnName [ j ][私] ;
colName = currentColumnName [ j ] ;
よりよく書かれるでしょう:
//マップテーブルの各列について、列名がCONDの場合は、選択基準に追加します
為に(( j = 1 、 j <= numOfColumns 、 j ++、
colName = Column( correlationMapTable、j) <<名前を取得;
もしも((含まれています(( colName 、 「COND_」 )。 、
Re:列名の一部として "="をエスケープするにはどうすればよいですか?ねえ、breinoso、
ええ、私はJSLのエスケープ文字の起源を知るのに十分な時間はありませんでしたが、実際には「\!」で始まります。文字列に改行を挿入するには、「\!n」です。引用符が文字列の終わりとしてJMPに表示されないようにするには、引用符を\!」にします(そして、msharpは「エスケープする必要があるのは引用符")。
そして、はい、他の言語からJSLに移行することは、少し不快になる可能性があります;-)。
HTH、
エリック
Re:列名の一部として "="をエスケープするにはどうすればよいですか?こんにちはmsharp、
お時間をいただき、誠にありがとうございます。 したがって、必要なエスケープシーケンスが\!であることを明確にできますか? <列名はここにあります>\! ?
C#プログラマーとして、私の頭はJSLを学ぶだけでとても痛いです:)
よろしく、
B
Re:列名の一部として "="をエスケープするにはどうすればよいですか?正直なところ、このスクリプトには多くの問題があります。デバッグを考えているだけで頭が痛い。
だから私は行きませんが、本質的にあなたの問題はこれです:
=エスケープする必要はありませんエスケープする必要があるのは括弧引用符。AKA:
eval ((解析する(( "dt << Select Where(Column("条件=臨時雇用者")== 2)" )) ;
になる必要があります:
eval ((解析する(( "dt << Select Where(Column(\!" Cond = Temp \! ") == 2)」 )) ;