自由に定義可能な排列基準を使い、テキストを行単位でソート
Dsort 0.8(J) について
Dsort はユーザが自由に定義できる排列基準をもとにテキストを行単位でソートするユーティリティです。今回公開するものは PowerPC 対応版だけです。
特長
0.ソートのための排列基準を定義ファイルを使って自由に定義できます。たとえば、五十音順ではなく、いろは順に並べるなど。お仕着せのソートに不満の方にお勧めです。定義ファイルは名前ほど大げさなものではなく、ただ単に並べたい順に字を書いていけばいいのです。
1.ソートのためのキーはフィールド単位で指定します。フィールドとは一行中で、ある一定の文字に挟まれた区間のことです。もちろん行全体の指定も可。
2.フィールドの区切り文字としてはタブ、スペースの他、印字可能な1バイト文字が指定可能です。ただし全部で4文字までの制限があります。
3.ソートキーは4つまで指定できます。その際、個々に独立して逆順ソートも指定できます。
4.もちろん数値によるソートもサポートしています。
5.Dsort の動作はバイト単位が基本なのですが、複数バイト(max. 7バイト)を一つのまとまりとして定義することができます。
6.1バイトまたは複数バイトを別のバイトやバイト列に読み替えることができます。たとえば合字をその要素に分解したものとして取り扱うことができるのです。
7.定義ファイルは一旦読み込めば、次回以降自動的に読み込まれます。その置場所と名称は、読み込んだ後に変更しても、追随します。
8.定義ファイルを使わずに文字コードをキーにする原始的なソートもできます。
欠点
1.メモリをかなり食います。少なくとも対象ファイルのサイズのほぼ4倍+300KBは必要です。これはキーの数、キーとなったフィールドの大きさなどの要素でかなり変動しますが、最低限この程度は必要となります。
2.メモリ上でしか動作しません。ソート可能なファイルの大きさは Dsort に与えることのできるメモリのサイズによって制限されてしまいます。
3.バイト単位での動作が基本で、ファイルに使われている文字コードには一切関知しません。Shift-JIS や EUC の場合は定義ファイルさえそれに対応していれば問題ありませんが、JIS コードのように ESCシーケンスによって文字セットを切り替える方式のファイルに対しては正しい結果を出しません。