これは単純な質問だと思いますが、これを機能させることは一生不可能です。
コンテキストとしては、構造の数レベルにあるほとんど (1 行を除く) 冗長エントリの n タプルを処理する必要がある、イライラする XML エクストラクターがあります。 これらの「重複」エントリを見つけて、より大きなテーブルにインポートする前に、それらが本当に重複しているかどうかを確認しようとしています。 繰り返し数のチェックは完了しましたが、ネストされた for/if ループを機能させるのに非常に苦労しています。 実際、Eval( Eval Expr(....Expr())) が間違った場所にネストされていると、ループによってソフトウェア全体が一貫してクラッシュします。 これがなぜなのかはわかりませんが、私がその構造の使用方法を誤解しているだけではないかと思っています。
char() と concatenate90 を相互にネストして使用することにも問題があるのではないかと思いますが、繰り返しになりますが、なぜそうなるのかはわかりません。 以下にある現在のコードはソフトウェアをクラッシュさせます。
colnames = dt << Get Column Names( String );
show(colnames);
reps = 0;
show(reps);
For( i = 1, i <= N Items( colnames), i++,
reps = Sum( reps, Contains(colnames[i], "Data - Common Counting Time")); show(reps)
);
check = 0;
//Repeats that split columns
colnamecount = "Scan Append Number_4"; //Using a file that only has three of these columns, so show(colnamecount) = *_4 means its not going past that first if statment
If( reps> 1,
For( i = 2, i = reps, i++,
Eval(Eval Expr(colnamecount = Concat("Scan Append Number_", Char(Expr(i))))); //This is the issue
If(dt:{"Scan Append Number_1"}[1] == Column( colnamecount )[1],
check = check + 1,
check = check + 12
)
)
);
show(check);どちらにしてもコードは機能しませんが、連結された名前を持つ列を n タプルの最初の列と比較する If ステートメントを取得できるまでは問題ありません。まず、連結を機能させる必要があります。 JSLはクラッシュしません。
何か考えのある人はいますか? 私が構文に関して愚かなだけでしょうか?
連結の場合、Eval(Eval Epr(Expr())) は必要ありません。次のように減らすことができます。
for(i=2,i<10,i++,
colname=Concat("Scan Append Number_", Char(i));
Print(colname));@ホギいい視点ね! 昨夜の疲れで、最初の質問で言及するのを忘れていましたが、特に単純な Char(i) バージョンが機能しなかったため、実際に Eval(Eval Expr(Expr())) コンストラクトに目を向けたのは最初の質問でした。ソフトウェアのクラッシュの原因。
しかし、問題が見つかりました。 for ループの 2 番目の条件を「until」として扱っていましたが、それは「while」条件です。 つまり、不等式ではなく、等号 (i = reps) があったので、私の推測では、 ∞、何らかの理由で 1 回のテストで停止し、私は 137 で、担当者は最大 3 になるはずです。
今日は何かを学びました。
ご協力いただきありがとうございます!