一部の言語には、ソートプログラムまたはデータベースシステムで正しいアルファベット順にソートできない文字が含まれています。システム関数 SORTKEY を使用すると、このような "正しくソートされない" 文字をアルファベット順で "正しくソートされる" 別の文字に変換できます。
Natural プログラム内で SORTKEY 関数を使用すると、ユーザー出口 NATUSKnn が呼び出されます。nn は現在の言語コード(システム変数 *LANGUAGE の現在の値)です。
NATUSKnn ユーザー出口は、CALL インターフェイスを使用して C プログラミング言語で書き込むことができます。SORTKEY で指定した文字列はユーザー出口に渡されます。ユーザー出口は、この文字列の "正しくソートされない" 文字を対応する "正しくソートされる" 文字に変換するようにプログラミングされている必要があります。続けて、変換された文字列が Natural
プログラムで使用され、さらに処理が実行されます。
注意:
変換テーブルが指定されていません。
NATUSKnn は CALL インターフェイスを使用して呼び出されます。C 関数のパラメータには、次の値があります。
| パラメータ | Contents |
|---|---|
| 1 | 引数の数。 |
| 2 | オペランドへのポインタの配列。 |
| 3 | 各オペランドのフィールド情報の配列。 |
Natural システム関数 #OP1=SORTKEY(#OP2) を使用する場合、ソースオペランドはインデックス 0 の配列にあり、ターゲットオペランド(#OP1)はインデックス 1 の配列にあります。
ユーザー出口のサンプル natusk01.c はソースフォームで提供されます。これは英語に適用され、文字列内のすべての英語の小文字を大文字に変換します。サンプルは <install-dir>/natural/samples/sysexuex に用意されています。ここには他のユーザー出口も含まれています。
この例のソースコードには、SORTKEY の特定のユーザー出口を書き込むために必要なすべてのコメントが含まれています。
リンケージ規則およびロード規則については、CALL ステートメントを参照してください。