ソートマージ

[目次][用語][索引][前へ][次へ]

付録I.3 数値データの扱い

<この項の構成>
(1) ワイド文字対応の属性コード
(2) キー・項目の開始位置と長さの指定

(1) ワイド文字対応の属性コード

UCS-2,UCS-4,UTF-16およびUTF-32では,10進数字の「0」〜「9」,外部10進数で使用するゾーン部の英小文字「p」〜「y」,符号文字の「-」と「+」,およびCSVの固定小数点数で使用する通貨記号,小数点,コンマなどの桁修飾文字が,それぞれ2バイトまたは4バイトのワイド文字で表現されます。

図I-14 UCS-2LEで表現した外部10進数のデータ例

[図データ]

ワイド文字表現の数字に対応している数値属性コードを,次の表に示します。

表I-9 ワイド文字対応の数値属性コード

エンコード種別 1文字の長さ
(単位:バイト)
属性コード
2進数 10進数 数字
n m a b f p z x s t d
UCS-2LE 2 × × × × × ×
UCS-2BE 2 × × × × × ×
UCS-4LE 4 × × × × × ×
UCS-4BE 4 × × × × × ×
UTF-16LE 2 × × × × × ×
UTF-16BE 2 × × × × × ×
UTF-32LE 4 × × × × × ×
UTF-32BE 4 × × × × × ×

(凡例)
○:ワイド文字に対応している
×:ワイド文字で対応していない(ワイド文字で表現できない数値)

10進数のデータ形式の詳細については,「3.2 キー属性と形式」の「SORT EE固有のデータ形式」を参照してください。

(2) キー・項目の開始位置と長さの指定

(a) 開始バイト位置

キー・項目に指定した「+開始バイト位置」から,エンコードに従って文字(数字)解析します。

エンコードの種類が「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,または「UTF-16BE」の場合は「2の倍数」を開始バイト位置に指定してください。

エンコードの種類が「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,または「UTF-32BE」の場合は「4の倍数」を開始バイト位置に指定してください。

(b) 桁数

キー・項目に指定した「−桁数」をエンコードに従って文字(数字)解析します。指定する値はバイト長ではなく,文字(数字や符号)の桁数です。

SORT EEでは,指定された桁数を次の表に示すバイト長に換算して操作します。

表I-10 エンコードと桁数の関係(10進数)

エンコード種別 1桁のバイト長 備考(例)
ASCII 1 キー「z+0-4」の長さは,4×1=4バイトです。
SJIS
EUC-JP
EUC-HJ
UTF-8
UCS-2LE 2 キー「z+0-4」の長さは,4×2=8バイトです。
UCS-2BE
UTF-16LE
UTF-16BE
UCS-4LE 4 キー「z+0-4」の長さは,4×4=16バイトです。
UCS-4BE
UTF-32LE
UTF-32BE