« お久しぶりのクイナ君 | トップページ | 雨,上がる »

2022/02/10

Refsort/Ruby v3.70 released

辞書参照型ソーティング・フィルタ Refsort/Ruby (新しいほうから *1 *2 *3 *4 *5)の改訂版 v3.70 をリリースしました.今回の改訂では,辞書ファイルや入力ファイルのエンコーディングを指定するコマンドラインオプションを新設しました.意味的にやや大きな改訂なので,サブバージョンを 0.1 上げて v3.70 としました.

少し詳しく説明します.Refsort はその生い立ちからコマンドプロンプトでの操作とフィルタとしての機能を基本にしているため,ロケール以外のエンコーディングを扱うことは例外とし,その場合には辞書ファイルや入力ファイルの先頭に埋め込みオプションでエンコーディングを指定することにしていました.

しかし Windows において Windows-31JShift_JIS だけでなく UTF-8 も広く使われるようになり,Excel のワークシートから直接 UTF-8 の CSV ファイルを書き出せるようにもなって,ロケールを前提にすることに無理が生じてきました.そこで扱うファイルのエンコーディングをコマンドラインオプションで指定できるようにしました.オプションの書式は “-E encoding” または “--encoding encoding” です.“encoding” に与える文字列としては,Windows-31J,Shift_JIS,UTF-8,EUC-JP などの ASCII 互換エンコーディングが可能です.

エンコーディングを指定する複数の手段の間の優先順位は,

埋め込みオプション > コマンドラインオプション > ロケール

となります.つまりロケールが何であろうと埋め込みオプションがあればそれが使用され,埋め込みオプションが無くてコマンドラインオプションがあればそれが使用され,エンコーディングに関するオプションが何も指定されていなければデフォルトのロケールが使用されるということになります.

今回の改訂によるメリットは,例えば Windows 上では,従来 UTF-8 のファイルを使うにはわざわざファイルの先頭に埋め込みオプションを書かなければならなかったのに対して,今後はコマンドラインオプションで “-E UTF-8” と指定するだけでよく,扱うファイルに破壊的変更を加える必要がなくなったということです.これは運用上大きなメリットになると期待しています.従来の手法もそのまま残してあり,今回の改訂が上位互換となる建て付けなので,移行は円滑にできるはずです.

ただし辞書ファイルに関しては従来通り埋め込みオプションを書くことを推奨します.なぜならばユーザーにエンコーディングの選択を意識させずに済むからです.

また従来と同じく,エンコーディングをどのような手段で指定しようとも,辞書ファイルと入力ファイルのエンコーディングは同一でなければなりません.これが一致していなければ Refsort はエラーを吐いて停止します.ユーザーは自分がどのエンコーディングを選択しているのか,よく意識する必要があります.

Refsort/Ruby とそれに関するコンテンツのアーカイブを Microsoft One Drive に置いています.画面右側コラムの Archive の中の Refsort/Ruby Archive をクリックしていただくと,私の OneDrive 上に設けたライブラリが開きますので,そこから過去分も含めてファイルをダウンロードすることができます. Refsort 本体の refsort.rb は refsort_v370.rb というファイル名でアップロードされていますので,ダウンロード後に refsort.rb に変更するとよいでしょう.改行コードも CR/LF になっていますので,適宜変更してお使いください.エンコーディングは US-ASCII ですので,そのままでよいでしょう.ユーザーズガイドも若干改訂されています.

| |

« お久しぶりのクイナ君 | トップページ | 雨,上がる »

自然」カテゴリの記事

IT関連情報」カテゴリの記事

科学」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« お久しぶりのクイナ君 | トップページ | 雨,上がる »