BSRTPRIM構造体は、ソート処理、マージ処理、およびコピー処理など主要な基本情報を指定するための構造体です。
typedef struct { unsigned long reserve1; /* reserved */ unsigned char function; unsigned char recform; unsigned char optionfunc; unsigned char fileoprat; unsigned char recoprat; unsigned char msglevel; unsigned char cdmode; unsigned char chklevel; unsigned long rec_len; unsigned long input_string; unsigned long memory_size; BSPTR_VOID memory_addr; unsigned long input_recno; BSPTR_UCHAR fldchar_addr; unsigned char debuginfo; unsigned char fieldmode; unsigned char keyoption; unsigned char keyoption2; unsigned char linedlmt; unsigned char error_happened; unsigned char altmode; unsigned char reserve4; /* reserved */ BSPTR_UCHAR reserve5; /* reserved */ } BSRTPRIM;
BSRTPRIM構造体メンバー
以下では、BSRTPRIM構造体のメンバーについて説明します。
function
PowerSORTの主要機能を指定します。
以下から1つを選択して指定します。省略はできません。
定義値 | 意味 |
---|---|
BS_SORT | ソート機能 |
BS_MERGE | マージ機能 |
BS_COPY | コピー機能 |
recform
レコード形式を指定します。
以下から1つを選択して指定します。テキストファイルの場合は値を指定する必要はありません。
定義値 | 意味 |
---|---|
BS_FREC | 固定長レコード形式 |
BS_VREC | 可変長レコード形式 |
optionfunc
オプション機能を指定します。
必要に応じて以下を指定します。複数指定する場合は、その論理和を指定します。
定義値 | 意味 |
---|---|
BS_FIFO | 先入力先出力(FIFO)機能を示します。 |
BS_SUPPRESS | サプレス機能を示します。 |
BS_SUM | レコード集約機能を示します。 |
BS_SELECT | レコード選択機能を示します。 |
BS_RECON | レコード再編成機能を示します。 |
BS_REVERSE | 降順にソート処理、またはマージ処理することを示します。 |
BSMSG_STDERR | 標準エラー出力にメッセージを出力することを示します。(注) |
注) 出力するメッセージの種別は、BSRTPRIM構造体のmsglevel、またはスタートアップファイルのBSORT_MSGLEVELの指定に依存します。
fileoprat
入出力情報を指定します。
必要に応じて以下を指定します。複数指定する場合は、その論理和を指定します。
定義値 | 意味 |
---|---|
BS_OVERWRITE | 出力ファイルが入力ファイルと同じ場合に、処理を継続することを示します。 |
BS_STDIN | 標準入力からレコードを入力することを示します。 |
BS_STDOUT | 標準出力に結果を出力することを示します。 |
recoprat
PowerSORTとのレコードの受渡し方法を指定します。
複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定します。
入力の受渡し方法
定義値 | 意味 |
---|---|
BS_IS | bsrtput関数、またはbsrtmrge関数を使用して、1レコードずつPowerSORTに渡すことを示します。 |
BS_IM | bsrtput関数を使用して、複数のレコードを一括してPowerSORTに渡すことを示します。 |
出力の受渡し方法
定義値 | 意味 |
---|---|
BS_OS | bsrtget関数、またはbsrtmrge関数を使用して、1レコードずつPowerSORTから受け取ることを示します。 |
BS_OM | bsrtget関数を使用して、複数のレコードを一括してPowerSORTから受け取ることを示します。 |
msglevel
PowerSORTが出力するメッセージの種別(レベル)を指定します。
以下から1つを選択して指定します。
定義値 | 意味 |
---|---|
BSMSG_LEVEL_N | 何も出力しません。 |
BSMSG_LEVEL_E | エラーメッセージを出力します。 |
BSMSG_LEVEL_W | エラーメッセージ、および警告メッセージを出力します。 |
BSMSG_LEVEL_I | エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 |
また、V5.0以前のバージョンとの互換用として、以下の種別(レベル)も指定できます。
定義値 | 意味 |
---|---|
BSMSG_LEVEL0 | 何も出力しません。 |
BSMSG_LEVEL1 | エラーメッセージ、および警告メッセージを出力します。 |
BSMSG_LEVEL2 | エラーメッセージ、警告メッセージ、および情報メッセージを出力します。 |
注意
メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncにBSMSG_STDERRを指定する必要があります。
cdmode
入力ファイルのコード系を指定します。
以下から1つを選択して指定します。
定義値 | 意味 |
---|---|
BSZD_AU | ASCIIコード系(富士通COBOL形式) |
BSZD_AC | ASCIIコード系(Micro Focus COBOL形式) |
BSZD_EBCDIC | EBCDICコード系 (注) |
BSZD_UCS2 | Unicode系(UCS-2形式) |
BSZD_UCS2B | Unicode系(UCS-2形式) |
BSZD_UCS2L | Unicode系(UCS-2形式) |
BSZD_UTF32 | Unicode系(UTF-32形式) |
BSZD_UTF32B | Unicode系(UTF-32形式) |
BSZD_UTF32L | Unicode系(UTF-32形式) |
BSZD_UTF8 | Unicode系(UTF-8形式) |
注) EBCDICコード系はバイナリファイルの場合に指定可能です。
chklevel
BSORT関数のチェック機構を指定します。
以下から1つを選択して指定します。
定義値 | 意味 |
---|---|
BSCHK_LEVEL0 | 何もチェックしません。 (省略値) |
BSCHK_LEVEL1 | インターフェースをチェックします。 |
rec_len
入力レコード長を指定します。
バイナリファイルの可変長レコード形式の場合は最大レコード長を指定します。テキストファイルの場合は改行コードを含んだ最大レコード長を指定します。
注意
バイナリファイル可変長レコード形式またはテキストファイルの場合、実際の最大レコード長より大きな値を指定しても動作可能です。ただし、実際の最大レコード長よりも大きな値を指定した場合、指定した値の差異に応じて性能悪化の要因となりますので、可能な限り実際の最大レコード長に近い値を指定してください。
input_string
マージ機能時の入力ストリング数を指定します。
ソート機能、またはコピー機能を使用する場合は0を指定してください。
参考
ソート済のレコードの集まりをストリングと呼びます。
memory_size
PowerSORTが使用する作業域の大きさ(メモリサイズ)をバイト数で指定します。
65536~2147482624バイトの範囲で指定します。省略する場合は0を指定します。省略した場合、スタートアップファイルのBSORT_MEMSIZEの指定があればその大きさの作業域を使用し、指定がなければ作業域は自動的に設定されます。2147482625以上の値を指定した場合は2147482624を指定したとみなします。
memory_addr
PowerSORTが使用する作業域のアドレスを指定します。
省略する場合はNULLを指定します。省略した場合、作業域は自動的に確保されます。memory_addrを指定する場合は、memory_sizeでその大きさを指定する必要があります。
注意
不当な値が指定された場合、PowerSORTの処理は保証できません。
input_recno
サポートしていないメンバーです。何も設定する必要はありません。
fldchar_addr
フィールド分離文字列のアドレスを指定します。
テキストファイル浮動フィールド指定のときに有効です。フィールド分離文字列は、'\0'で終わる文字列です。省略する場合はNULLを指定します。省略した場合は、タブ、および空白をフィールド分離文字として扱います。
debuginfo
サポートしていないメンバーです。何も指定する必要はありません。
fieldmode
テキストファイルのときのフィールドの決め方を指定します。
以下から1つを選択して指定します。テキストファイルの場合は指定が必要です。
定義値 | 意味 |
---|---|
BS_FLTFLD | テキストファイル浮動フィールド指定であることを示します。 |
BS_FIXFLD | テキストファイル固定フィールド指定であることを示します。 |
BS_CSVFORM | テキストファイルCSV形式であることを示します。 |
BS_TSVFORM | テキストファイルTSV形式であることを示します。 |
keyoption
キーフィールドの操作を指定します。
テキストファイルの場合にキーフィールドの指定を省略したときに有効です。必要に応じて以下を指定します。複数の操作を指定する場合は、その論理和を指定します。
定義値 | 意味 |
---|---|
BSOPT_BLANK | キーフィールドの先頭の空白とタブを無視します。 |
BSOPT_DICTIONARY | 空白と英数字だけを比較の対象とします。 |
BSOPT_IGNORE | 制御文字コードを無視します。 |
BSOPT_JUMBO | 英小文字を英大文字として比較します。 |
BSOPT_NUMERIC | 符号を含んだ数字の文字列を算術的な値で比較します。 |
BSOPT_CHARNUM | 英字と数字の連結データ(例えば「data123」など)を英字と数値に分けて評価し並べます。 |
keyoption2
キーフィールドの操作を指定します。
複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの場合にキーフィールドの指定を省略したときに有効です。このメンバーはkeyoptionのBSOPT_NUMERIC、およびBSOPT_CHARNUMとは排他関係にあります。必要に応じて以下を指定します。
定義値 | 意味 |
---|---|
BSOPT2_LOCALE | 環境変数LC_COLLATEで定義した照合順序で比較します。 |
linedlmt
レコード分離文字を指定します。
テキストファイルのときに有効です。以下から1つを選択して指定します。
定義値 | 意味 |
---|---|
BSLDM_LF | LFを改行文字とします。 (省略値) |
BSLDM_CR | CRを改行文字とします。 |
BSLDM_CL | CRLFを改行文字とします。 |
注意
PowerSORTでは、改行コードは1種類に統一されている必要があります。複数の改行コードが混在している場合の動作は保証できません。
error_happened
サポートしていないメンバーです。何も指定する必要はありません。
altmode
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下から1つを選択して指定します。
定義値 | 意味 |
---|---|
BSALT_ASCII | EBCDICコードとUS ASCIIコード間のコード変換を指定します。 (省略値) |
BSALT_JIS8 | EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換を指定します。 |
BSALT_JIS7 | EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換を指定します。 |