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

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

6.4.1 BSRTPRIM構造体

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 */
} BSRTPRIM;

■BSRTPRIM構造体メンバ

unsigned char  function

PowerSORTの主要機能を指定します。
以下から1つを選択して指定します。省略はできません。

定義値

意味

BS_SORT

ソート機能

BS_MERGE

マージ機能

BS_COPY

コピー機能

unsigned char  recform

レコード形式を指定します。
以下から1つを選択して指定します。テキストファイルのときは値を指定する必要はありません。

定義値

意味

BS_FREC

固定長レコード形式

BS_VREC

可変長レコード形式

unsigned char  optionfunc

オプション機能を指定します。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。

定義値

意味

BS_FIFO

先入力先出力(FIFO)機能を示します。
BS_SUPPRESSとBS_SUMとは排他関係にあります。(注)

BS_SUPPRESS

サプレス機能を示します。
BS_FIFOとBS_SUMとは排他関係にあります。

BS_SUM

レコード集約機能を示します。BS_FIFOとBS_SUPPRESSとは排他関係にあります。
BS_SUMを指定したときは、BSRTOPT構造体に集約テーブル(BSRTSUM構造体)のアドレスを設定する必要があります。

BS_SELECT

レコード選択機能を示します。
BS_SELECTを指定したときは、BSRTOPT構造体に選択テーブル(BSRTSELE構造体)のアドレスを設定する必要があります。

BS_RECON

レコード再編成機能を示します。
BS_RECONを指定したときは、BSRTOPT構造体に再編成テーブル(BSRTRCON構造体)のアドレスを設定する必要があります。

BS_REVERSE

降順にソート処理またはマージ処理することを示します。
キーフィールドを省略した場合に有効になります。

BSMSG_STDERR

標準エラー出力にメッセージを出力することを示します。
出力メッセージはBSRTPRIM構造体のmsglevelに依存します。

注) 入力ファイルがMicro Focus COBOLファイルシステムの索引ファイルの場合に先入力先出力(FIFO)機能を指定すると、インデックス順ではなく物理順で優先順位が決定します。

unsigned char  fileoprat

入出力情報を指定します。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。

定義値

意味

BS_OVERWRITE

ソート機能において、入力ファイルの1つと出力ファイルが同一なとき、処理を継続することを示します。このオプションを指定し、入力ファイルの1つと出力ファイルが同一な場合、ソート処理中に異常が発生すると、入力ファイルのデータは保証されない場合がありますので、注意してください。

BS_STDIN

標準入力からレコードを入力することを示します。BS_STDINはマージ機能では指定できません。BSRTFILE構造体で入力ファイルを指定している場合は、無視されます。

BS_STDOUT

標準出力に結果を出力することを示します。BSRTFILE構造体で出力ファイルを指定している場合は、無視されます。

unsigned char  recoprat

PowerSORTとのレコードの受渡し方法を指定します。
複数指定する場合は、入力の受渡し方法と出力の受渡し方法から1つずつ選んでその論理和を指定します。

[入力の受渡し方法]

定義値

意味

BS_IS

bsrtput関数またはbsrtmrge関数を使用して、1レコードずつPowerSORTに渡すことを示します。

BS_IM

bsrtput関数を使用して複数のレコードを一括してPowerSORTに渡すことを示します。この機能はマージ機能のときは指定できません。

[出力の受渡し方法]

定義値

意味

BS_OS

bsrtget関数またはbsrtmrge関数を使用して1レコードずつPowerSORTから受け取ることを示します。

BS_OM

bsrtget関数を使用して複数のレコードを一括してPowerSORTから受け取ることを示します。この機能はマージ機能のときは指定できません。

unsigned char  msglevel

PowerSORTが出力するメッセージのレベルを指定します。
以下から1つを選択して指定します。
なお、メッセージを標準エラー出力に出力するためには、BSRTPRIM構造体のoptionfuncにBSMSG_STDERRを設定する必要があります。

定義値

意味

BSMSG_LEVEL0

何も出力しません。

BSMSG_LEVEL1

エラーメッセージを出力します。

BSMSG_LEVEL2

エラーメッセージと情報メッセージを出力します。

unsigned char  cdmode

入力ファイルのコード系を指定します。
以下から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形式)
Big endianのバイトオーダ

BSZD_UCS2L

Unicode系(UCS-2形式)
Little endianのバイトオーダ

BSZD_UTF8

Unicode系(UTF-8形式)

注) EBCDICコード系はバイナリファイルの場合に指定可能です。

unsigned char  chklevel

BSORT関数のチェック機構を指定します。
以下から1つを選択して指定します。

定義値

意味

BSCHK_LEVEL0

何もチェックしません。

BSCHK_LEVEL1

インタフェースチェックをします。
インタフェースチェックは、bsrtput関数、bsrtget関数、bsrtmrge関数でパラメタの正当性をチェックするものです。

unsigned long  rec_len

入力レコード長を指定します。
可変長レコード形式では最大レコード長を指定します。
テキストファイルでは改行コードを含んだ最大レコード長を指定します。

unsigned long  input_string

入力ストリング数を指定します。
ソート機能またはコピー機能を指定したときは0を指定します。
マージ機能を指定したときは、ストリング数を指定します。
ストリングとは、ソート済のレコードの集まりのことをいいます。

unsigned long  memory_size

PowerSORTが使用する作業域の大きさ(メモリサイズ)をバイト数で指定します。32768〜2147482624バイトの範囲で指定します。
省略する場合は、0を指定します。省略した場合、環境変数BSORT_MEMSIZEの指定があればその大きさの作業域を使用し、指定していなければ作業域は自動的に設定されます。2147482625以上の値を指定した場合は、2147482624を指定したとみなされます。

BSPTR_VOID  memory_addr

PowerSORTが使用する作業域のアドレスを指定します。
省略する場合は、<NULL>を指定します。memory_addrを指定する場合はmemory_sizeでその大きさを指定する必要があります。不当な値が指定された場合、PowerSORTの処理は保証されません。PowerSORTの作業域は、システムの制御等によってアドレスが移動しない領域を指定してください。

unsigned long  input_recno

入力レコード件数を概数で指定します。
分からない場合は、0を設定してください。

BSPTR_UCHAR  fldchar_addr

フィールド分離文字列のアドレスを指定します。
テキストファイル浮動フィールド指定のときに有効です。フィールド分離文字列は、\0で終わる文字列です。

unsigned char  debuginfo

サポートしていないメンバです。何も設定する必要はありません。

unsigned char  fieldmode

テキストファイルのときのフィールドの決め方を指定します。
テキストファイルのときは、必ず指定します。以下から1つを選択して指定します。

定義値

意味

BS_FLTFLD

テキストファイル浮動フィールド指定を示します。
フィールド分離文字列で区切られたフィールドの番号で各フィールドを指定します。
フィールド分離文字の位置によりフィールド位置が決定されるため、レコードごとにフィールド位置(カラム位置)は異なります。

BS_FIXFLD

テキストファイル固定フィールド指定を示します。
バイト位置によって各フィールドを指定します。

unsigned char  keyoption

キーフィールドの操作を指定します。
テキストファイルの場合でキーフィールドの指定を省略したときに有効です。
必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。

定義値

意味

BS_BLANK

キーフィールドの先頭の空白とタブを無視します。

BS_DICTIONARY

空白と英数字だけを比較の対象とします。

BS_IGNORE

制御文字コードを無視します。

BS_JUMBO

英小文字を英大文字として比較します。

BS_NUMERIC

符号を含んだ数字の文字列を算術的な値で比較します。文字列中に数字以外の文字が存在した場合の結果は保証されません。この定義値は、BS_CHARNUMおよびkeyoption2のBS_WCHRとは排他関係にあります。

BS_CHARNUM

英字と数字の連結データ(例えば、data123など)を英字と数値に分けて評価し並べます。英字だけを比較の対象として比較後、数字だけの文字列を算術的な値で比較します。指定フィールドの左から評価し、有効データ後に出現したデータは無視します。この定義値は、BS_NUMERICおよびkeyoption2のBS_WCHRとは排他関係にあります。

unsigned char  keyoption2

キーフィールドの操作を指定します。
複数バイトで表現される文字の文字列を文字単位に比較する場合に指定します。テキストファイルの場合でキーフィールドの指定を省略したときに有効なオプションです。このメンバはkeyoptionのBS_NUMERICおよびBS_CHARNUMとは排他関係にあります。
必要に応じて、以下を指定します。

定義値

意味

BS_WCHR

複数バイトから成る文字が混在していても文字ごとに比較して並べます。

unsigned char  linedlmt

レコード分離文字を指定します。
テキストファイルのときに有効です。以下から1つを選択して指定します。

定義値

意味

BSLDM_LF

<LF>を改行文字とします。

BSLDM_CR

<CR>を改行文字とします。

BSLDM_CL

<CR><LF>を改行文字とします。

unsigned char  error_happened

サポートしていないメンバです。何も設定する必要はありません。

unsigned char  altmode

ASCIIコードとEBCDICコード間の変換方式を指定します。
以下の場合にASCIIコードとEBCDICコード間の変換が行われます。

以下から1つを選択して指定します。

定義値

意味

BSALT_ASCII

EBCDICコードとUS ASCIIコード間のコード変換をします。

BSALT_JIS8

EBCDIC(カナ)コードとASCII(JIS8)コード間のコード変換をします。

BSALT_JIS7

EBCDIC(英小文字)コードとASCII(JIS7)コード間のコード変換をします。


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

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