[CSV_FILE_LOOP](CSVファイルのデータ取得)
CSVファイルからデータを取り込む処理の開始と終了を指定します。
指定する値
-
CSVファイル名
データを取得するCSVファイルのファイル名を変数で指定します。ファイル名は、jamscriptコマンドの-bpオプションで指定したベースパスを基点にした相対パスで指定します。-bpオプションを省略した場合は、Asset Consoleのインストール先フォルダ\scriptworkが基点となります。
-
列名=列番号
データを参照するための名称とCSVファイルの列の番号を対応づけます。列番号は、先頭を1として指定します。
-
取得したデータの処理
CSVファイルのデータに対する処理を記述します。
終了状態
処理の終了状態とその内容を次に示します。
終了状態 |
内容 |
---|---|
NORMAL |
− |
NODATA |
データ終了 |
ERROR |
1カラムのデータが32キロバイトを超える行がある |
MULTI |
− |
- (凡例)
-
−:該当しない
注意事項
指定したCSVファイルが存在しない場合、処理は中断されます。
CSVファイルからデータを取り込む処理を終了するかどうかは、ループ処理の終了タグである[CSV_FILE_LOOP_END]で参照した終了状態で判定されます。終了状態が「NORMAL」の場合は処理を継続して、「NORMAL」以外のときは処理を終了します。これは、処理の途中でエラーが発生したら、その時点で処理を中断する場合に有効です。
データがなくなるまで処理を継続させる場合は、[CSV_FILE_LOOP_END]タグで終了するかどうかを判定する前に、組み込み関数$SETSTATUSで「NORMAL」を明示的に指定することをお勧めします。
アクセス定義ファイルの終了状態は、タグや組み込み関数の実行によって随時更新されます。[CSV_FILE_LOOP]タグ中に終了状態の更新を伴う処理を複数指定した場合、最後に指定した終了状態を基に処理を終了するか判定されます。
記述例
CSVファイル「input.csv」の各行からデータを取得して、行番号と取得したデータの内容を出力する場合の記述例を次に示します。
[SET_VALUE] FILENAME = 'input.csv' CNT = 1 [CSV_FILE_LOOP] FILENAME [CSV_COLUMN_NAME] COLUMN1 = 1 COLUMN2 = 2 COLUMN3 = 3 [SET_VALUE] MSG = 'LINE('+CNT+') ['+COLUMN1+']['+COLUMN2+']['+COLUMN3+']' $ECHO(MSG) CNT = $ADD(CNT,1) [SET_VALUE] $SETSTATUS('NORMAL') [CSV_FILE_LOOP_END]
- 実行結果
-
LINE(1) [0000000001][R11111][運用]
LINE(2) [0000000002][R22222][返却]
LINE(3) [0000000003][R33333][廃棄]