REBUILD の /k オプション

索引ファイルのキー構造を定義します。

索引ファイルの索引が不足または破損している場合は、キー構造を使用して索引をリビルドします。

索引ファイルでないファイルを索引ファイルに変換する際には、このオプションを使用して、新しい出力ファイルのキー情報を指定する必要があります。

このオプションは、以下を行うためにも使用できます。

各キーは、レコード内でのキーの先頭文字の位置 (レコードの先頭文字の位置は 1) およびキーの長さ (文字数) で定義します。先頭文字の位置および長さは、プラス記号 (+) または文字「L」で区切ります。

キーの定義は、コロン (:) で次のキー定義と分離できます。

各キーは、いくつかの部分 (分割キー) として定義でき、各部分はカンマ (,) で区切ります。

副キー (最初に定義されたキー以外のキー) の定義は、末尾にパラメーター d (「WITH DUPLICATES」 の意味) を使用できます。

スパース キーを定義するには、パラメーター s を使用します。パラメーター s は、スパース文字自体の前に配置する必要があります。スパース文字が印字できない文字か、小文字や大文字の「d」 の場合には、パラメーター s に続いて dvalue を指定します (value はスパース文字を表す 10 進コード)。

それぞれのキーには、パラメーター c (「compression」 の意味) を使用して、キー圧縮の種類を指定できます。パラメーター c の後には 0 から 7 のキー圧縮値を付ける必要があります。

新しいファイルへのリビルドやすべてのキーの再指定を行わずに、キーを追加または削除できます。キーを追加するには、パラメーター a を使用します。キーを削除するには、パラメーター r を使用します。一度に追加または削除できるキーは 1 つだけであり、その場でのみリビルドできます。キーを追加または削除する際には、他の機能を使用できません。

  • この例では、文字位置 1 から開始し、長さが 20 文字の単一のキーを定義しています。
    /k:1+20
  • この例では、3 つのキーを定義しています。最初のキーは主キーで、文字位置 5 から開始し、長さは 5 文字です。2 番目のキーは重複が許可されている副キーで、文字位置 20 から開始し、長さは 1 文字です。3 番目のキーは分割副キーで、2 つの部分から構成されています。最初の部分は文字位置 40 から開始し、長さは 2 文字で、2 番目の部分は文字位置 43 から開始し、長さは 10 文字です。
    /k:5+5:20+1d:40+2,43+10
  • この例では、2 つのキーを定義しています。最初のキーは主キーで、文字位置 1 から開始し、長さは 5 文字です。2 番目のキーは副キーで、重複が許可されているスパース キーです。文字位置 20 から開始し、長さは 10 文字です。スパース文字は Z です。
    /k:1+5:20+10dsZ
  • この例では、2 つのキーを定義しています。最初のキーは主キーで、文字位置 1 から開始し、長さは 5 文字です。2 番目のキーは重複キーが許可されている副スパース キーで、文字位置 20 から開始し、長さは 10 文字です。スパース文字は null 文字です。
    /k:1+5:20+10dsh0
  • この例では、2 つのキーを定義しています。最初のキーは主キーで、文字位置 1 から開始し、長さは 10 文字です。2 番目のキーは重複が許可されている副圧縮キーで、文字位置 11 から開始し、長さは 20 文字です。使用されているキー圧縮のタイプは、重複の圧縮 (1) と先頭文字の圧縮 (2) です。
    /k:1+10:11+20dc3
  • この例では、重複を許可する新しいキーを追加します。このキーは文字位置 1 から開始し、長さは 3 文字です。
    /k:a:1+3d
  • この例では、文字位置 10 から開始し、長さが 5 文字のキーを削除します。
    /k:r:10+5
  • この例では、索引ファイルの索引がない場合に、索引を正しくリビルドする方法を示します。パラメーター s を使用して idxformat 4 索引を選択します。
    注: 索引が存在しない場合は、重複を許可するキーに関連する制御情報がデータ ファイルに含まれているため、idxformat 4 ファイルの元のキー指定と同じようにキー情報を正確に指定する必要があります。新しいキー情報が正確に一致しない場合、ファイルが破損したり、データが失われたりする可能性があります。新しいキーを作成したら、パラメーター f を使用してリビルドを検証することを推奨します。
    rebuild infile.dat, outfile.dat /k:1+5:6:10d /s:MF4