The key structure is used to rebuild the index of an indexed file when the original index is missing or corrupt.
When converting non-indexed files to indexed files, this option is required to specify the key information for the new output file.
You can also use this option to
Each key is defined by its starting character position within the record (the first character position in a record is 1) and its length in characters. The starting position and length must be separated by a plus sign (+) or the letter L.
The definition of one key is separated from the definition of the next key by a colon (:).
Each key can be defined as a number of parts (split key), each part being separated by a comma (,).
Alternate keys (those other than the first defined) can be terminated by the parameter d, indicating WITH DUPLICATES.
You can use the s parameter to specify a sparse key. The s parameter must be followed by the sparse character itself. If the sparse character is non-printable, or a lower or upper case 'd', the s parameter must be followed by dvalue, where value is the decimal value of the sparse character.
Different key compression values can be specified for each key by using the c parameter, indicating compression. The c parameter must be followed by a key compression value between 0 and 7.
You can add or remove a key without having to rebuild to a new file or specify all the keys again. To add a key you use the a parameter; to remove a key you use the r parameter. You can only add or remove one key at a time, and you can only rebuild in place. You cannot use any other functions when you are adding or removing a key
Examples
-k:1+20
This example defines a single key, starting at character position 1 and 20 characters in length.
-k:5+5:20+1d:40+2,43+10
This example defines three keys. The first key, the primary key, starts at character position 5 and is 5 characters in length; the second key, an alternate key allowing duplicates, starts at character position 20 and is 1 character in length; the third key, a split alternate key, has two parts, the first starting at character position 40 and 2 characters in length and the second starting at character position 43 and 10 characters in length.
-k:1+5:20+10dsZ
This example defines two keys. The first key, the primary key, starts at character position 1 and is 5 characters in length; the second key, an alternate, sparse key allowing duplicates, starts at character position 20 and is 10 characters in length, the sparse character is Z.
-k:1+5:20+10dsh0
This example defines two keys. The first key, the primary key, starts at character position 1 and is 5 characters in length. The second key, an alternate, sparse key allowing duplicates, starts at character position 20 and is 10 characters in length; the sparse character is the null character.
-k:1+10:11+20dc3
This example defines two keys. The first key, the primary, starts at character position 1 and is 10 characters in length. The second key, an alternate compressed key allowing duplicates, starts at character position 11 and is 20 characters in length. The types of key compression being used are compression of duplicates (1) and compression of leading characters (2).
-k:a:1+3d
This example adds a new key which allows duplicates. The key starts at character position 1 and is 3 characters in length.
-k:r:10+5
This example removes the key that starts at character position 10 and is 5 characters in length.