For each..next
for each..next 制御ステートメントは、コンマ区切りリストの各値に対して、1 つまたは複数のステートメントを実行するスクリプト反復構文です。for と next で囲まれたループ内のステートメントは、リストの各値で指定された回数分実行されます。
構文:
現在のディレクトリ内のファイルとディレクトリ名のリストの生成を可能にする特殊構文です。
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
引数:
引数 | 説明 |
---|---|
var | ループ実行のたびに、リストから新しい値を取得するスクリプト変数名。var が next の後に指定されている場合は、対応する for each の後に検出されるものと同じ変数名である必要があります。 |
var 変数の値は、ループ内のステートメントで変更できますが、これは良いプログラミングとは言えません。
exit for 節がループ内で出現した場合、スクリプトの実行はループの終了を示す next 節の後の最初のステートメントに移ります。exit for 節は、when や unless サフィックスを使用して条件を付けることができます。
構文:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
引数 | 説明 |
---|---|
constant | 任意の数値または文字列。スクリプトに直接書き込まれた文字列は単一引用符で囲む必要があります。単一引用符で囲まれていない文字列は、変数として解釈され、変数の値が使用されます。数字は単一引用符で囲む必要はありません。 |
expression | 任意の式。 |
mask | 有効なファイル名の文字や、標準的なワイルドカード文字 * と ? を含むファイル名またはディレクトリ名のマスク。 絶対ファイル パスや lib:// パスを使用できます。 |
condition | True または False の評価を実施する論理式。 |
statements | 1 つ以上の Qlik Sense スクリプト ステートメントのグループ。 |
filelist mask | この構文は、ファイル名のマスクに一致する現在のディレクトリ内にある、すべてのファイルのコンマ区切りリストを生成します。 |
dirlist mask | この構文は、ディレクトリ名のマスクに一致する現在のフォルダ内にある、すべてのディレクトリのコンマ区切りリストを生成します。 |
fieldvaluelist mask | この構文は、Qlik Sense にすでにロードされた項目の値を使って繰り返されます。 |
例1: ファイルのリストのロード
例2: ファイル リストをディスクに作成
この例では、フォルダにあるすべての Qlik Sense 関連ファイルのリストをロードしています。
例3: 項目の値を使って繰り返し
この例は、ロードされた値のリストである FIELD を使って繰り返され、新しい項目 NEWFIELD を生成します。FIELD の 1 つの値につき、2 つの NEWFIELD レコードが作成されます。
この結果、テーブルは次のようになります。
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |