PowerSORT Workstation V5.0 使用手引書
目次 索引 前ページ次ページ

第6章 C言語プログラムからPowerSORTを使用する> 6.4 BSORT関数で使用する構造体

6.4.17 BSSUM構造体

BSSUM構造体は、個々の集約フィールドを定義するための構造体です。

typedef struct {
  unsigned long   sum_position;
  unsigned long   sum_length;
  unsigned char   sum_type;
  unsigned char   sum_resultsign
  unsigned char   sum_resultnumber;
  unsigned char   reserve;     /* reserved */
} BSSUM;

■BSSUM構造体メンバ

unsigned long  sum_position

集約フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指定します。

unsigned long  sum_length

集約フィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、指定したフィールド長に拡張して処理します。集約フィールドに指定可能な長さはデータ形式によって異なります。詳細は集約フィールドに指定可能なデータ形式を参照してください。

unsigned char  sum_type

集約フィールドのデータ形式を指定します。
詳細は集約フィールドに指定可能なデータ形式を参照してください。

unsigned char  sum_resultsign

テキストファイルの場合に符号の有無を指定します。
必要に応じて、以下を指定します。

定義値

意味

BS_SIGNED

集約フィールドの値に符号をつけます。BS_PLUSUNSIGNEDとは排他関係にあります。

BS_PLUSUNSIGNED

集約フィールドの値が負の値の場合だけ符号(-)をつけます。BS_SIGNEDとは排他関係にあります。

指定を省略した場合は入力されたデータに従って、以下の処理をします。

unsigned char  sum_resultnumber

テキストファイルの場合に集約フィールドの値がフィールド長に満たない場合の扱いを指定します。
必要に応じて、以下を指定します。

定義値

意味

BS_ZEROPADDING

集約フィールドの値がフィールド長に満たない場合、左余白にゼロ(0)を詰めます。例えば、集約フィールドの値が1234という4バイトの数字であり、集約フィールド長が6バイトの場合、001234という数字にします。BS_BLANKPADDING、BS_ZBDELETEとは排他関係にあります。

BS_BLANKPADDING

集約フィールドの値がフィールド長に満たない場合、左余白に空白を詰めます。例えば、集約フィールドの値が1234という4バイトの数字であり、集約フィールド長が6バイトの場合、__1234(_は空白を表わす)という数字にします。BS_ZEROPADDING、BS_ZBDELETEとは排他関係にあります。

BS_ZBDELETE

集約フィールドの先頭から空白、タブおよび'0'を削除します。集約フィールドの先頭に空白、タブおよび'0'がある場合、左から評価し、'0'以外の数字が出現するまでの空白、タブおよび'0'を削除します。例えば、'00123'の場合、'123'という数字にします。ただし、集約フィールドが0(0、0000、+000など)の場合、最後の'0'は削除されません。テキストファイル浮動フィールド指定の場合に指定可能です。BS_ZEROPADDING、BS_BLANKPADDINGとは排他関係にあります。

指定を省略した場合は、入力されたデータにしたがって以下の処理をします。

集約フィールドの加算処理中にオーバフローが生じた場合の動作は、環境変数BSORT_SUMOVERCONTの指定によります。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2004-2006