User manual - 拡張機能ライブラリリファレンスマニュアル(2014年8月7日)

Table Of Contents
105
5.3.2. iHashAssign
データファイルからインデックスファイルを作成します。
int iHashAssign (
FILE *
DataFilePointer
,
FILE *
IndexFilePointer
,
long
K
,
long
V
,
long
L
,
long
W
)
パラメータ
DataFilePointer
データファイルのファイルポインタを指定します。
本関数を使用する前に、fopen 関数を使用してバイナリ読み込みモード(rb“)でデータファイルを
オープンしてください。
IndexFilePointer
インデックスファイルのファイルポインタを指定します。
本関数を使用する前に、fopen 関数を使用してバイナリ新規作成モード(wb+“)でインデックスフ
ァイルをオープンしてください。
K
,
V
,
L
,
W
これらの値は、インデックスファイルのヘッダ部に格納され、下記のような意味を持ちます。
K
:データファイルのキーフィールド長
V
:データファイルの総レコード数
ただし、将来データ数が増える見込みがある場合は、現在のデータファイルの実際
の総レコード数よりも大きい値を指定します。
L
:データファイルのレコード長(キー+データ)
W
:インデックスファイルの総インデックス数(ヘッダ情報除く)
(通常、W >= V * 1.2 上記変数は、long 型です。)
戻り値
下記の値を返します
HASH_OPERATIONOK
:正常終了
DATA_NOFILEREAD
:データファイル リードエラー
DATA_NOFILEOPEN
:データファイル 未オープン
DATA_NOFILESEEK
:データファイル シークエラー
IDX_NOFILEREAD
:インデックスファイル リードエラー
IDX_NOFILEWRITE
:インデックスファイル ライトエラー
IDX_NOFILEOPEN
:インデックスファイル 未オープン
IDX_NOFILESEEK
:インデックスファイル シークエラー
HASH_NOMEMORY
:実行メモリ不足
PARAM_INVALID
:パラメータエラー