COBOL2002 ユーザーズガイド


付録D.1 ACCEPT/DISPLAY文を使用したCSVファイルへのアクセス

ACCEPT文,DISPLAY文を使用して,CSVファイルにデータを入出力する方法について説明します。

なお,ACCEPT/DISPLAY文を使用したCSVファイルへのアクセス方法では,一つの実行単位で一つのCSVファイルしか扱えません。そのため,通常はREAD/WRITE文を使用してCSV編成ファイルとして入出力する方法を推奨します。CSV編成ファイルの入出力方法については,「6.8 CSV編成ファイル(表計算プログラムファイル)」を参照してください。

〈この項の構成〉

(1) CSVデータの読み込み

環境変数CBL_SYSCSVINで割り当てたCSVファイルのデータを,ACCEPT文を実行することで1行ずつ(改行文字まで)読み込めます。読み込まれた1行は,コンマ(,)で区切られたデータ(セル)ごとにユーザが定義したデータ領域に格納されます。

ACCEPT文の形式
ACCEPT 一意名 FROM 呼び名
注※

呼び名は,環境部の特殊名段落で,SYSCSVに関連づけておく必要があります。詳細は,マニュアル「COBOL2002 言語 拡張仕様編」 「17.3.1 環境部(SPECIAL-NAMES)(CSVファイル入出力機能)」を参照してください。

CSVファイルの割り当て

ACCEPT文で入力するCSVファイルは,環境変数CBL_SYSCSVINに絶対パス名で指定しておきます。環境変数の指定例を次に示します。

CBL_SYSCSVIN=C:\dir\file1.csv
規則
  • 環境変数CBL_SYSCSVINにファイルが割り当てられていない場合,最初のACCEPT文実行時に実行時メッセージが出力され,プログラムの実行が中止されます。

  • CSVファイルから読み込まれた1行中の各セルは,一意名に従属する基本項目に先頭から1対1対応で格納されます。セルの個数が基本項目の個数より多い場合,対応しないセルは無視されます。セルの個数が基本項目の個数より少ない場合,対応しない基本項目の値は,ACCEPT文の実行前の状態から変更されません。

  • セルは,英数字項目の転記規則に従って一意名のデータ項目に格納されます。

  • 入力データにダブルコーテーション(")が含まれない場合,コンマまたは改行文字(X'0D0A')を区切り文字としてデータが入力されます。

  • 入力データにダブルコーテーションが含まれる場合,次の規則に従ってデータが入力されます。

    1. コンマの直後がダブルコーテーションの場合,次のダブルコーテーションの直前までをデータとして扱う。

    2. コンマの直後がダブルコーテーションでない場合,データ中に含まれるダブルコーテーションは文字データとして扱う。

(2) CSVデータの書き込み

環境変数CBL_SYSCSVOUTで割り当てたファイルに,DISPLAY文を実行することでCSV形式のデータを1行ずつ書き出せます。各行は,ユーザが定義したデータ領域の値にコンマを付けた形式で書き出されます。書き出されたファイルは,表計算プログラムのCSVファイルとなります。

DISPLAY文の形式
DISPLAY 一意名 UPON 呼び名
注※

呼び名は,環境部の特殊名段落で,SYSCSVに関連づけておく必要があります。詳細は,マニュアル「COBOL2002 言語 拡張仕様編」 「17.3.1 環境部(SPECIAL-NAMES)(CSVファイル入出力機能)」を参照してください。

CSVファイルの割り当て

DISPLAY文で出力するCSVファイルは,環境変数CBL_SYSCSVOUTに絶対パス名で指定しておきます。環境変数の指定例を次に示します。

CBL_SYSCSVOUT=C:\dir\file2.csv
規則
  • 環境変数CBL_SYSCSVOUTにファイル名が割り当てられていない場合,最初のDISPLAY文実行時に実行時メッセージが出力され,プログラムの実行が中止されます。

  • データは,一意名または一意名に従属する基本項目のそれぞれの値にコンマを付けてデータを引用符で囲み,さらに終端に改行文字を付けて出力されます。

  • セルデータの最後に空白文字がある場合,その空白は出力されません。