# CSV形式受信の設定

受信したファイルをCSV形式へ変換する際、項目を何で区切るかのセパレータ文字、項目の囲み文字などを設定するCSV環境設定ファイル（hulcsv.info）が集信側に必要です。

変換するファイルIDごとに内容を設定してください。なお、ファイルIDが設定されていない場合は、ユーザーの初期値が設定されます（「ユーザーの初期値」を参照）。CSV環境設定ファイルが存在していない場合、または「ユーザーの初期値」が設定されていない場合は、各項目の初期値（「各項目の初期値」参照）が設定されます。

## ファイル名

CSV環境設定ファイルの名称は「hulcsv.info」です。この名称は変更できません。

CSV環境設定ファイルは、HULFTのシステムファイルが存在するパス（HULPATH）に置きます。

## 記述フォーマット

行の先頭に半角の「#」があるときは、コメント行とみなされます。空行が存在していても 構いません。

項目と項目の区切りは、スペースコード（0x20）またはタブコード（0x09）を使用します。

## レコードレイアウト

CSV環境設定ファイル（hulcsv.info）はバイナリデータを含みませんので、viなどのエディターで作成することができます。また、このレコードはCSV環境設定ファイルに複数記述することができます。

表2.15 レコードレイアウト

項目名 | 領域長 | 記述値
--- | --- | ---
ファイルID | 50 | 50バイト以内の英大文字数字および“_”
項目間の区切り文字 | 5 | 半角1文字、TAB、SPACEまたはNONE
スペースキャラクタの省略有無 | 3 | YESまたはNO
全スペース項目の処理 | 3 | YESまたはNO
キャラクタ項目の囲み文字 | 1 | 半角1文字
数値項目の前ゼロ処理 | 3 | YESまたはNO
タイトル行の出力有無 | 3 | YESまたはNO

注意

項目と項目の区切りは、スペースコード（0x20）またはタブコード（0x09）を使用します。YESまたはNOの選択を行う項目にて、YES、NO以外の記述を行った場合は、初期値が有効になります。各項目の初期値は、「各項目の初期値」を参照してください。

## 各項目の説明

各項目の説明を以下に示します。各項目の初期値は「各項目の初期値」を参照してください。

ファイルID（FILEID）

  CSV形式変換を行うファイルIDを英大文字数字および“_”で記述します。50バイト以内で指定します。

項目間の区切り文字（SEPARATE）

  項目と項目を区切る文字を記述します。

  半角1文字

    : 指定文字を区切り文字

  TAB

    : タブコード（0x09）を区切り文字

  SPACE

    : スペースコード（0x20）を区切り文字

  NONE

    : 区切り文字なし

スペースキャラクタの省略有無（SPACECUT）

  フォーマット情報の項目タイプが“X（キャラクター）”、“M（可変長文字）”、または“N（2バイト表示文字）”で、その項目値の後ろにあるスペース、または漢字コード変換によってフォーマット情報のサイズより実際のデータサイズが短くなったときの後ろスペースを省略するかしないかを記述します。

  YES

    : 項目の後ろのスペースをカットする

  NO

    : 項目の後ろのスペースをカットしない

全スペース項目の処理（ALL_SPACECUT）

  フォーマット情報の項目タイプが“X（キャラクター）”、“M（可変長文字）”、または“N（2バイト表示文字）”で、その項目値がすべてスペースの場合の処理を記述します。

  YES

    : 全スペースをカットする

  NO

    : 半角1バイト分のスペースを項目値とする

  この指定は、スペースキャラクタの省略有無で“YES（項目の後ろのスペースをカットする）”を指定したときのみ有効です。

  省略するスペースコードは、以下のとおりです。

  - Shift-JISの場合

    - 0X20（半角スペース）

    - 0X8140（全角スペース）

  - EUC-JPの場合

    - 0X20（半角スペース）

    - 0XA1A1（全角スペース）

  - UTF-8の場合

    - 0X20（半角スペース）

    - 0XE38080（全角スペース）

  - GB18030の場合

    - 0X20（半角スペース）

    - 0XA1A1（全角スペース）

キャラクタ項目の囲み文字（SIEGE）

  フォーマット情報の項目タイプが“X（キャラクター）”、“M（可変長文字）”、または“N（2バイト表示文字）”のとき、その項目の値を囲む文字を記述します。半角1バイトのみ有効です。文字を囲みたくない場合は“N”を記述します。スペースまたは“N”で囲むことはできません。

数値項目の前ゼロ処理（ZEROCUT）

  フォーマット情報の項目タイプが“B（バイナリ）”、“S（サイン付外部10進数）”、“P（サイン付内部10進数）”、“F（浮動小数点タイプ）”、または“9（サイン無外部10進数）”で、その項目の値が規定表示桁数（下記参照）より少ない場合、数値の前に“0”を埋めるかどうかを記述します。

  YES

    : 数値の前の「0」をカット

  NO

    : 数値の前を「0」で埋める

  表2.16 CSV形式変換時の変換規則

  集信ファイル（変換後） | CSVデータ
  --- | ---
  項目タイプ | バイト数 | 規定表示桁数
  F | 浮動小数タイプ | 4 | 21
  8 | 30
  P | サイン付内部10進数 | 1～2 | 12
  3～5 | 12
  6～10 | 21
  B | バイナリタイプ | 2 | 12
  4 | 12
  8 | 21
  S | サイン付外部10進数 | 1～4 | 12
  5～9 | 12
  10～18 | 21

  = 備考 =

  - 項目タイプが“F（浮動小数点タイプ）”の場合は、小数点以下桁数が固定で9桁になります。また、規定表示桁数を超えるデータの場合は、データに依存します。

  - 属性変換機能で、“P（サイン付内部10進数）タイプ”、“S（サイン付外部10進数）タイプ”から“9（サイン無外部10進数）タイプ”に変換した場合、規定表示桁数はデータ桁数に依存します。変換しない場合は、項目のバイト数に依存します。

  - 規定表示桁数には、符号（'-'のみ）および小数点が含まれます。

  - バイナリタイプのデータは、サイン付データ形式として処理されます。

タイトル行の出力有無（TITLE）

  フォーマット情報の項目名をタイトル行として、1行目に出力するかどうかを記述します。ただし、タイトル行の出力は配信管理情報の転送タイプが“F（FORMAT）”のときのみ有効です。

  YES

    : タイトル行を出力する

  NO

    : タイトル行を出力しない

## ユーザーの初期値

CSV環境設定ファイルに同じ設定内容のファイルIDが複数存在する場合、ファイルID「DEFAULTF」で初期値を設定することにより、1つのファイルIDで同じ設定を行うことができます。変換するファイルIDがCSV環境設定ファイルに存在しないとき「DEFAULTF」の値が設定されます。

「DEFAULTF」がCSV環境設定ファイルに設定されていない場合は、「各項目の初期値」が設定されます。

## 各項目の初期値

各設定値の初期値を以下に示します。該当するファイルIDがなかった場合、またはファイ ルが存在しない場合は、初期値が設定値として採用されます。

表2.17 CSV形式変換時の初期値

項目名 | 初期値 | 初期値の説明
--- | --- | ---
項目間の区切り文字 | ，（カンマ） | 項目を「,（カンマ）」で区切る
スペースキャラクタの省略有無 | YES | 項目の後ろのスペースをカットする
全スペース項目の処理 | YES | 全スペースをカットする
キャラクタ項目の囲み文字 | ”（ダブルクォート） | 項目の値を「"（ダブルクォート）」で囲む
数値項目の前ゼロ処理 | YES | 数値の前の「0」をカット
タイトル行の出力有無 | NO | タイトル行を出力しない

## CSV形式ファイル

CSV形式受信を行うと、集信ファイルと同一のディレクトリーにCSV形式ファイルが作成されます。CSV形式のファイル名は「集信ファイル名.csv」です。

## 設定例

CSV形式変換環境設定ファイルの設定例を下記に示します。

    # HULFT10 CSV Environment Settings File
    #
    # FILEID        : Receive File ID
    # SEPARATE      : Delimiter  *SPACE, TAB, NONE can also be used.
    # SPACECUT      : Space cut
    # ALL_SPACECUT  : All-space process
    # SIEGE         : Text enclosure
    # ZEROCUT       : Pre-zero cut
    # TITLE         : Title line output
    #
    # Default Value : SEPARATE        = ,
    #               : SPACECUT        = YES
    #               : ALL_SPACECUT    = YES
    #               : SIEGE           = "
    #               : ZEROCUT         = YES
    #               : TITLE           = NO
    #
    #FILEID  SEPARATE  SPACECUT  ALL_SPACECUT  SIEGE  ZEROCUT  TITLE
    #|       |         |         |             |      |        |
    SAMPLE   ,         YES       YES           "      YES      NO
    NAME     ,         YES       YES           "      YES      YES
    NAME2    ;         NO        NO            '      YES      NO
    ADDRESS  :         YES       NO            '      NO       NO
    DEFAULTF ;         NO        YES           N      YES      YES

## 注意事項

- フォーマット情報の項目タイプに“I（イメージタイプ（無変換））”を指定すると、CSV形式変換処理でエラーになりますので指定しないでください。

  “I（イメージタイプ（無変換））”はイメージ（転送時無変換）なので、データ内に上記セパレータ文字や囲み文字が含まれる可能性があるためです。

- CSV変換では、データ内にNULL文字（0x00）が存在した場合、そこまでをデータであると判断します。

- システム動作環境設定の転送関連ファイルの削除モード（trnsfr_file_del）に“復元不可能モード（1）”を指定していた場合、処理中に集信したデータを削除する必要があるときは、復元不可能な状態で削除されます。