[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][廃棄]