PowerSORT Workstation V5.0 使用手引書 |
目次
索引
![]() ![]() |
第6章 C言語プログラムからPowerSORTを使用する | > 6.4 BSORT関数で使用する構造体 |
BSSELE構造体は、個々の選択フィールドを定義するための構造体です。
比較演算子を指定します。
以下に、比較演算子と真の条件について説明します。
比較演算子 |
真の条件 |
---|---|
BSCOND_EQ |
被比較フィールド = 比較フィールドまたは自己規定値 |
BSCOND_NE |
被比較フィールド ≠ 比較フィールドまたは自己規定値 |
BSCOND_GT |
被比較フィールド > 比較フィールドまたは自己規定値 |
BSCOND_GE |
被比較フィールド ≧ 比較フィールドまたは自己規定値 |
BSCOND_LT |
被比較フィールド < 比較フィールドまたは自己規定値 |
BSCOND_LE |
被比較フィールド ≦ 比較フィールドまたは自己規定値 |
被比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。
比較フィールドのデータ形式を指定します。
詳細は被比較フィールドと比較フィールドに指定可能なデータ形式を参照してください。なお、比較フィールドに自己規定値を指定するときは、sele_type2にBS_LITERALを指定します。
被比較フィールドの操作を指定します。
テキストファイルの場合に有効です。必要に応じて、以下を指定します。複数指定する場合は、その論理和を指定します。
操作 |
意味 |
---|---|
BSOPT_B |
フィールドの先頭の空白とタブを無視します。 |
BSOPT_D |
空白と英数字だけを比較の対象とします。 |
BSOPT_I |
制御文字コードを無視します。 |
BSOPT_J |
英小文字を英大文字とみなして比較します。 |
BSOPT_N |
符号を含む数字の文字列を算術的な値で比較します。文字列中に数字以外の文字が存在した場合の結果は保証されません。sele_option2のBSOPT2_Wとは排他関係にあります。 |
被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、被比較フィールドの操作は指定できません。
被比較フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指定します。
被比較フィールドの長さを設定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
比較フィールドの位置を設定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定し、テキストファイル浮動フィールド指定の場合は、0から数えたフィールド番号を指定します。
pos2.sele_literalとは共用体で定義されています。自己規定値を指定するときは、pos2.sele_literalに設定します。
自己規定値のアドレスを設定します。
テキストファイル浮動フィールド指定の場合は、自己規定値にフィールド分離文字列を含むことはできません。pos2.sele_position2とは共用体で定義されています。自己規定値以外を指定するときは、pos2.sele_position2に設定します。
比較フィールドまたは自己規定値の長さを設定します。
テキストファイル浮動フィールド指定の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
比較結果が真のときの処理を設定します。
最後のエントリのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を設定します。
比較結果の処理については以下を参照してください。
処理の種類 |
定義値 |
意味 |
---|---|---|
INCLUDE |
BSSEL_INCLUDE |
比較処理の終りとレコードを処理対象とすることを示します。 |
OMIT |
BSSEL_OMIT |
比較処理の終りとレコードを処理対象外とすることを示します。 |
次の選択フィールドの処理 |
BSSEL_NEXT |
次の比較処理に移ることを示します。 |
指定選択フィールドへ飛ぶ |
BSSEL_JUMP |
指定した比較処理に移ることを示します。 |
比較結果が偽のときの処理を設定します。
最後のエントリのsele_trueopとsele_falseopには、比較処理の終りを示す定義値を設定します。
比較結果の処理については、比較結果の処理方法を参照してください。
サポートしていないメンバです。何も設定する必要はありません。
複数バイトで表現される文字の文字列を文字単位に比較する場合の操作を指定します。
必要に応じて、以下を指定します。
定義値 |
意味 |
---|---|
BSOPT2_W |
複数バイトから成る文字が混在していても文字ごとに比較します。 |
被比較フィールドのデータ形式に照合順序変更(BSKEY_COL)を指定した場合、被比較フィールドの操作は指定できません。
sele_trueopにBSSEL_JUMPを設定したときの飛び先を設定します。
iを設定すると真のとき、sele_entry[i]の選択フィールドの処理に移ります。sele_truejmpとsele_falsejmpには、自身のエントリ番号+1〜entry_no-1の範囲の値を設定します。
sele_falseopにBSSEL_JUMPを設定したときの飛び先を設定します。
iを設定すると偽のとき、sele_entry[i]の選択フィールドの処理に移ります。sele_truejmpとsele_falsejmpには、自身のエントリ番号+1〜entry_no-1の範囲の値を設定します。
照合順序変更機能を使用する場合、照合順序変更を定義したBSCOL構造体のアドレスを指定します。照合順序変更機能は、sele_type1、またはsele_type2にBSKEY_COLが指定されている場合に利用できます。
選択フィールドは、複数の選択フィールドを指定することで複合条件を指定することができます。ここでは、複合条件の指定方法を説明します。
1つの選択フィールドは、1つの論理式を表現します。
次の複合条件を満たすレコードを選択する場合の指定方法を以下に示します。
例)
(論理式1 ∩ 論理式2) ∪ 論理式3 |
∩:論理積 ∪:論理和
entry_no = 3 |
目次
索引
![]() ![]() |