• 検索結果がありません。

文字のソート

ドキュメント内 rbagsmstpdf.ps (ページ 178-198)

従来、情報はソートされた順序で表示され、ユーザーは探している項目を容易に見付けることができます。

しかし、ユーザーが使用する言語によって、求めるソート・リストの表示方法も若干異なってきます。

アルファベット順が言語によって異なるだけでなく、同じ言語でも文書によって異なる場合があります。例 えば、電話帳の順序付けは辞書の順序付けと異なります。ストリングの比較は、大半のアプリケーションに 必要な基本機能の 1 つですが、インプリメンテーションはしばしばローカルの規則と一致しないことがあ ります。

以下に、言語のストリングの順序付けが異なる例を示します。

v 文字 A から Z が英語と異なる順序でソートされる場合があります。例えば、リトアニア語では文字 y は文字 i と k の間にソートされます。

v 符号付きの文字は、独特な文字として扱われます。例えば、デンマーク語の は、文字 Z の直後に ソートされる分離文字として扱われます。

v ある言語では別の文字として扱われる符号の無い文字が、他の言語では区別されない場合があります。

例えば、文字 v および w は、英語では 2 つの異なる文字です。しかし、v と w はスウェーデン語で は同じ文字の変種としてみなされます。

IBM i では、文字のソート順序をカスタマイズできます。以下の方法を使用して、実行できます。

v IBM i のソート順序サポート v ICU ベースのソート・サポート

v ロケールのソート・サポート。アプリケーションでロケールを使用する場合は、 LC_COLLATE ロケー ル・カテゴリーのソート・サポートを使用できます。

関連概念:

91ページの『ソート順序』

IBM i オペレーティング・システムは、ソート順序をサポートします。リストされたオプションのいずれ

かを使用することにより、個々のアプリケーションの国/地域別情報の依存要件に応じてデータの順序付け ができます。

223ページの『LC_COLLATE カテゴリー』

LC_COLLATE カテゴリーは、文字またはストリングの照合情報を定義します。cpysyscol キーワードを使 用して、LC_COLLATE 内で使用するソート順序を指定できます。cpysyscol キーワードの値は、

LC_COLLATE カテゴリーの定義の代わりに使用されます。

IBM i のソート順序サポート:

IBM i のソート順序サポートは、複数のリリースにわたってシステムで提供されてきたソート・サポート

です。このサポートを使用すると、ユーザーは独自に定義されたソート・テーブルを作成できます。ただ し、個別文字単位の固有順番でのソートに限定されます。

また、IBM i のソート順序は、1 バイト文字セット (SBCS) および CCSID 13488 についてのみ、完全サ ポートを提供します。これらのソート順序は、ほとんどのシステムでサポートされています。

ソート順序テーブル:

ソート順序テーブルは、指定したコード化文字セット ID (CCSID) の中にそれぞれの 1 バイト・グラフィ ック文字の順番を含むオブジェクトです。ソート順序テーブルのオブジェクト・タイプとしてシステムが認 識する ID は *TBL です。

要件に応じて、それぞれのグラフィック文字に固有順番のテーブルを定義するか、または一部のグラフィッ ク文字について共用順番のテーブルを定義できます。文字セット内にそれぞれの文字の固有順番を含むテー ブルを定義すると、そのテーブルは固有順番テーブルと呼ばれます。一部のグラフィック文字に同一の順番 を共用するテーブルを定義すると、そのテーブルは共用順番テーブルと呼ばれます。例えば、グラフィック

文字大文字の「A」とグラフィック文字小文字の「a」を一緒にソートするときには、共用順番テーブルを 定義します。これらのグラフィック文字を個別にソートする場合は、固有順番テーブルを定義します。

システムには、ソート順序テーブル・セットが組み込まれています。このテーブル・セットは、すべての 1 バイト文字セット (SBCS) 言語用に、固有順番と共用順番のソート順序を定義します。

ソート順序テーブルの実装時の注意

ソート順序サポートでは、次の情報は考慮されていません。

v 複数の文字として処理すべき単一の文字 (ドイツ文字のエスツェット (ss) など) の特殊なケース。

v 単一の文字として処理すべき文字列 (デンマーク語の aa、ハンガリー語の ly、セルビア語の lj、スペイ ン語の ll など)。

v 英数字ストリングに組み込まれたために無視すべき非英数字 (co-op のハイフンなど)。

v 無視すべき接頭部 (Van der Pool という名前の Van der の部分など)。

v プログラム記述ファイル。

v DBCS コード・ページ。

ソート順序テーブルでブランク文字に 16 進数 40 以外の順番が割り当てられていると、長さの等しくない ストリングが比較されたときに予測外の結果が生じることがあります。

システムに組み込まれているソート順序テーブル

IBM i オペレーティング・システムに組み込まれているソート順序テーブルの内容を表示するには、「テ

ーブルの処理」(WRKTBL) コマンドを使用します。これらのテーブルは QSYS ライブラリーにあります。

このテーブルを使用する場合は、次の情報を考慮してください。

v システムに組み込まれている複数のテーブルは、1 つのソート順序を示しています。各テーブルは、異 なるコード化文字セット ID (CCSID) 値でエンコードされています。ソート順序のエンコードに使用さ れるすべての CCSID に、そのソート順序にある文字すべてが存在するとは限りません。

v 言語 ID (LANGID) パラメーターとソート順序 (SRTSEQ) パラメーターを使用して、固有順番が付けら れたテーブル (*LANGIDUNQ) または共用順番のテーブル (*LANGIDSHR) にアクセスしてください。

v ソート順序を使用するときは、これらのテーブルに示されている相対順番とシステム上のソート順序テ ーブルにある実際の順番は異なります。 これらのテーブルに示されている相対順番は単なる例です。

v それぞれの文字の相対的な固有順番は、ソート順序テーブルの文字の順序で示されます。相対的な固有 順番は、ソート順序テーブルの最初の文字の順番を 1 とし、次の文字からテーブルの最後の文字まで次 々に 1 つずつ増加して割り当てられます。

v GCGID は、グラフィック文字グローバル ID です。

例えば、アラビア語ソート順序テーブルは、アラビア語ソート順序テーブルを使用してソートされる文字の 相対的なソート順序の順番を示します。

ソート順序テーブルの作成方法

ユーザー定義のソート順序テーブルを作成するには、「テーブル作成」(CRTTBL) コマンドを使用して既存 のソート順序テーブルをコピーし、そのテーブルのコピーを変更します。テーブルの機能を使用すると、以 下の作業を実行できます。

v ソース・メンバー内に保存されている定義を使用する。

v 対話式インターフェースを使用して、他のソート順序テーブルを基にしてテーブルを作成する。

次の CRTTBL コマンドを使用して、既存のテーブルのコピーからソート順序テーブル (MYTEST) を作成 できます。

CRTTBL TBL(MYTEST) SRCFILE(*PROMPT) TBLTYPE(*SRTSEQ) BASESRTSEQ(QSYS/QLA10025S) CCSID(037)

このコマンドは、変更可能なソート順序テーブルを表示します。この画面のファンクション・キーでテーブ ルを作成できます。テーブルを作成すると、テーブルのコード化文字セット ID (CCSID) は 00037 となり ます。テーブル名は MYTEST となり、現行ライブラリーに保存されます。

次のテーブルは、MYTEST というソート順序テーブルの最初の画面に表示される文字の例です。 次のパネ ルは、テキスト記述の代わりに文字を表示します。例えば、0100 という順序の文字は疑問符 (?) であり、

0070 の順序の文字はコロン (:) です。

注: MYTEST ソート順序テーブルの最初に実際に表示される文字は、使用する装置によって異なる場合が

あります。

順序 文字

0010 等号

0020 上線

0030 (SHY)

0040 ハイフン

0050 コンマ

0060 セミコロン

0070 コロン

0080 感嘆符

0090 逆感嘆符

0100 疑問符

0110 逆疑問符

0120 スラッシュ

0130 ピリオド

0140 揚音符号のマーク

0150 抑音符号のマーク

0160 脱字記号

0170 右大括弧

0180 波形符号

0190 小乗算ドット

0200 コンマ

テーブルを変更して、各コード・ページの文字を各国語ソート順序の希望の位置に移動できます。順序は、

10 単位ごとに変更できます。つまり、最初の値が 10、次が 20 となります。共用順番の文字については、

グループとして同じ順序順番が付けられます。

関連概念:

26ページの『ソート順序 (QSRTSEQ) システム値』

ソート順序 (QSRTSEQ) システム値は、QLANGID システム値と併用して、文字データのソートに使用す るソート順序テーブルを決定します。

107ページの『ILE RPG のソート順序』

ILE RPG 機能 (IBM Rational Development Studio for i ライセンス・プログラムのオプション) では、ソー ト順序テーブルを指定する機能が提供されています。また、同じテーブルを非数値データで実行される比較 処理に使用できます。

136ページの『CCSID の処理』

システムに Character Data Representation Architecture (CDRA) を実装すると、IBM i オペレーティング・

システムおよび複数の IBM システムにまたがって、コード化された文字 (データ) を一貫性のある方法で 表示、処理、交換することができます。IBM i オペレーティング・システムへの CDRA の基本実装では、

コード化文字セット ID (CCSID) サポートが使用されます。

313ページの『コード・ページ』

IBM コード・ページには、国際規格の ISO/IEC 8859 に一致するものがあります。 IBM i オペレーティ ング・システムは、ISO 規格の一部について、等価の IBM コード・ページでサポートします。

関連資料:

「テーブル作成」(CRTTBL) コマンド アラビア語のソート順序:

アラビア語のソート順序テーブルは、アラビア語に使用します。

GCGID 文字 共用順番 固有順番

SP010000 1 1

SP090000 2 2

SP320000 3 3

SP100000 4 4

SP080000 5 5

SP080007 6 6

SP140000 7 7

SP140007 8 8

SP130000 9 9

SP020000 10 10

SP150000 11 11

ドキュメント内 rbagsmstpdf.ps (ページ 178-198)