PowerSORT Workstation V5.0 使用手引書 |
目次
索引
![]() ![]() |
第6章 C言語プログラムからPowerSORTを使用する | > 6.4 BSORT関数で使用する構造体 |
BSRTPRIM構造体は、ソート処理、マージ処理およびコピー処理など主要な基本情報を設定するための構造体です。
typedef struct { |
PowerSORTの主要機能を指定します。
以下から1つを選択して指定します。省略はできません。
定義値 |
意味 |
---|---|
BS_SORT |
ソート機能 |
BS_MERGE |
マージ機能 |
BS_COPY |
コピー機能 |
レコード形式を指定します。
以下から1つを選択して指定します。テキストファイルのときは値を指定する必要はありません。
定義値 |
意味 |
---|---|
BS_FREC |
固定長レコード形式 |
BS_VREC |
可変長レコード形式 |
オプション機能を指定します。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
定義値 |
意味 |
---|---|
BS_FIFO |
先入力先出力(FIFO)機能を示します。 |
BS_SUPPRESS |
サプレス機能を示します。 |
BS_SUM |
レコード集約機能を示します。BS_FIFOとBS_SUPPRESSとは排他関係にあります。 |
BS_SELECT |
レコード選択機能を示します。 |
BS_RECON |
レコード再編成機能を示します。 |
BS_REVERSE |
降順にソート処理またはマージ処理することを示します。 |
BSMSG_STDERR |
標準エラー出力にメッセージを出力することを示します。 |
注) 入力ファイルがMicro Focus COBOLファイルシステムの索引ファイルの場合に先入力先出力(FIFO)機能を指定すると、インデックス順ではなく物理順で優先順位が決定します。
入出力情報を指定します。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
定義値 |
意味 |
---|---|
BS_OVERWRITE |
ソート機能において、入力ファイルの1つと出力ファイルが同一なとき、処理を継続することを示します。このオプションを指定し、入力ファイルの1つと出力ファイルが同一な場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合がありますので、注意してください。 |
BS_STDIN |
標準入力からレコードを入力することを示します。BS_STDINはマージ機能では指定できません。BSRTFILE構造体で入力ファイルを指定している場合は、無視されます。 |
BS_STDOUT |
標準出力に結果を出力することを示します。BSRTFILE構造体で出力ファイルを指定している場合は、無視されます。 |
PowerSORTとのレコードの受渡し方法を指定します。
複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定します。
定義値 |
意味 |
---|---|
BS_IS |
bsrtput関数またはbsrtmrge関数を使用して、1レコードずつPowerSORTに渡すことを示します。 |
BS_IM |
bsrtput関数を使用して複数のレコードを一括してPowerSORTに渡すことを示します。この機能はマージ機能のときは指定できません。 |
定義値 |
意味 |
---|---|
BS_OS |
bsrtget関数またはbsrtmrge関数を使用して1レコードずつPowerSORTから受け取ることを示します。 |
BS_OM |
bsrtget関数を使用して複数のレコードを一括してPowerSORTから受け取ることを示します。この機能はマージ機能のときは指定できません。 |
PowerSORTが出力するメッセージのレベルを指定します。
以下から1つを選択して指定します。
なお、メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncにBSMSG_STDERRを設定する必要があります。
定義値 |
意味 |
---|---|
BSMSG_LEVEL0 |
何も出力しません。 |
BSMSG_LEVEL1 |
エラーメッセージを出力します。 |
BSMSG_LEVEL2 |
エラーメッセージと情報メッセージを出力します。 |
入力ファイルのコード系を指定します。
以下から1つを選択して指定します。
定義値 |
意味 |
---|---|
BSZD_AU |
ASCIIコード系(富士通COBOL形式) |
BSZD_AC |
ASCIIコード系(Micro Focus COBOL形式、COBOL/2形式) |
BSZD_EBCDIC |
EBCDICコード系 (注) |
BSZD_UCS2 |
Unicode系(UCS-2形式) |
BSZD_UCS2B |
Unicode系(UCS-2形式) |
BSZD_UCS2L |
Unicode系(UCS-2形式) |
BSZD_UTF8 |
Unicode系(UTF-8形式) |
注) EBCDICコード系はバイナリファイルの場合に指定可能です。
BSORT関数のチェック機構を指定します。
以下から1つを選択して指定します。
定義値 |
意味 |
---|---|
BSCHK_LEVEL0 |
何もチェックしません。 |
BSCHK_LEVEL1 |
インタフェースチェックをします。 |
入力レコード長を指定します。
可変長レコード形式では最大レコード長を指定します。
テキストファイルでは改行コードを含んだ最大レコード長を指定します。
入力ストリング数を指定します。
ソート機能またはコピー機能を指定したときは0を指定します。
マージ機能を指定したときは、ストリング数を指定します。
ストリングとは、ソート済のレコードの集まりのことをいいます。
PowerSORTが使用する作業域の大きさ(メモリサイズ)をバイト数で指定します。32768〜2147482624バイトの範囲で指定します。
省略する場合は、0を指定します。省略した場合、環境変数BSORT_MEMSIZEの指定があればその大きさの作業域を使用し、指定していなければ作業域は自動的に設定されます。2147482625以上の値を指定した場合は、2147482624を指定したとみなされます。
PowerSORTが使用する作業域のアドレスを指定します。
省略する場合は、<NULL>を指定します。memory_addrを指定する場合はmemory_sizeでその大きさを指定する必要があります。不当な値が指定された場合、PowerSORTの処理は保証されません。PowerSORTの作業域は、システムの制御等によってアドレスが移動しない領域を指定してください。
入力レコード件数を概数で指定します。
分からない場合は、0を設定してください。
フィールド分離文字列のアドレスを指定します。
テキストファイル浮動フィールド指定のときに有効です。フィールド分離文字列は、\0で終わる文字列です。
サポートしていないメンバです。何も設定する必要はありません。
テキストファイルのときのフィールドの決め方を指定します。
テキストファイルのときは、必ず指定します。以下から1つを選択して指定します。
定義値 |
意味 |
---|---|
BS_FLTFLD |
テキストファイル浮動フィールド指定を示します。 |
BS_FIXFLD |
テキストファイル固定フィールド指定を示します。 |
キーフィールドの操作を指定します。
テキストファイルの場合でキーフィールドの指定を省略したときに有効です。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
定義値 |
意味 |
---|---|
BS_BLANK |
キーフィールドの先頭の空白とタブを無視します。 |
BS_DICTIONARY |
空白と英数字だけを比較の対象とします。 |
BS_IGNORE |
制御文字コードを無視します。 |
BS_JUMBO |
英小文字を英大文字として比較します。 |
BS_NUMERIC |
符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数字以外の文字が存在した場合の結果は保証されません。この定義値は、BS_CHARNUMおよびkeyoption2のBS_WCHRとは排他関係にあります。 |
BS_CHARNUM |
英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評価し並べます。英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後に出現したデータは無視します。この定義値は、BS_NUMERICおよびkeyoption2のBS_WCHRとは排他関係にあります。 |
キーフィールドの操作を指定します。
複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの場合でキーフィールドの指定を省略したときに有効なオプションです。このメンバはkeyoptionのBS_NUMERICおよびBS_CHARNUMとは排他関係にあります。
必要に応じて、以下を指定します。
定義値 |
意味 |
---|---|
BS_WCHR |
複数バイトから成る文字が混在していても文字ごとに比較して並べます。 |
レコード分離文字を指定します。
テキストファイルのときに有効です。以下から1つを選択して指定します。
定義値 |
意味 |
---|---|
BSLDM_LF |
<LF>を改行文字とします。 |
BSLDM_CR |
<CR>を改行文字とします。 |
BSLDM_CL |
<CR><LF>を改行文字とします。 |
サポートしていないメンバです。何も設定する必要はありません。
ASCIIコードとEBCDICコード間の変換方式を指定します。
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。
以下から1つを選択して指定します。
定義値 |
意味 |
---|---|
BSALT_ASCII |
EBCDICコードとUS ASCIIコード間のコード変換をします。 |
BSALT_JIS8 |
EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。 |
BSALT_JIS7 |
EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。 |
目次
索引
![]() ![]() |