BSKANJI構造体は、漢字フィールド、およびふりがなフィールドを定義するための構造体です。
typedef struct { unsigned char Kkey_order[4]; unsigned char Kkey_form; unsigned char reserve1; /* reserved */ unsigned char reserve2; /* reserved */ unsigned char Fkey_type; unsigned long Fkey_position; unsigned long Fkey_length; } BSKANJI;
BSKANJI構造体メンバー
以下では、BSKANJI構造体のメンバーについて説明します。
Kkey_order[4]
漢字フィールドの漢字属性を指定します。
漢字属性は最大4つまで指定できます。複数の漢字属性を指定した場合、指定順に比較が行われます。指定可能な漢字属性を以下に示します。
定義値 | 意味 |
---|---|
BS_BUSHU | 部首コード順に並べます。 |
BS_SOKAKU | 総画数順に並べます。 |
BS_ONYOMI | 音読み順に並べます。 |
BS_KUNYOMI | 訓読み順に並べます。 |
BS_CODE | 漢字コード(JEFコード)順に並べます。 |
Kkey_form
漢字ソートマージ機能の方式を指定します。
指定可能な方式を以下に示します。
定義値 | 意味 |
---|---|
BSFM_STD | 基本方式(漢字属性の順)に並べます。 |
BSFM_DIC | 国語辞典方式(ふりがなの順)に並べます。 |
Fkey_type
ふりがなフィールドのデータ形式を指定します。
ふりがなフィールドには、半角文字と全角文字が混在できます。指定可能なデータ形式を以下に示します。
種類 | データ形式 | 定義値 | 長さ(バイト) |
---|---|---|---|
文字 | ASCIIコード | BSKEY_ASC | 1~レコード長 (注1) |
EBCDICコード (注2) | BSKEY_EBC | 1~レコード長 (注1) | |
シフトJISコード | BSKEY_SJI | 1~レコード長 (注1) | |
JEFコード (注2) | BSKEY_JEF | 2~レコード長 (2の倍数) (注1) |
種類 | データ形式 | 定義値 | 長さ(バイト) |
---|---|---|---|
文字 | ASCIIコード | BSKEY_ASC | 1~レコード長 (注1) |
シフトJISコード | BSKEY_SJI | 1~レコード長 (注1) |
注1) レコード再編成機能を指定した場合は、レコード再編成後のレコード長まで指定できます。
注2) 入力ファイルのコード系(BSRTPRIM構造体のcdmode)がEBCDICコード系の場合に指定できます。
Fkey_position
ふりがなフィールドの位置を指定します。
バイナリファイルとテキストファイル固定フィールド指定の場合は、レコードの先頭を0としたバイト位置を指定します。テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合は、0から数えたフィールド番号を指定します。
Fkey_length
ふりがなフィールドの長さをバイト数で指定します。
テキストファイル浮動フィールド指定、テキストファイルCSV形式、およびテキストファイルTSV形式の場合、指定したフィールド長よりも長いフィールドが現れた場合は、指定したフィールド長で処理します。指定したフィールド長よりも短いフィールドが現れた場合は、実際のフィールド長で処理します。
注意
テキストファイルCSV形式、およびテキストファイルTSV形式の場合、フィールドを囲むダブルクォーテーション(")は、ふりがなフィールドの長さに含みません。また、ダブルクォーテーション(")で囲まれたフィールド内の2つ連続したダブルクォーテーション("")は、1つのダブルクォーテーション(")として長さを計算します。