CSV データを複数のファイルに振り分けるツールです。50000ヒット記念アンケートの集計作業を行うためのツールとして作成したものですが、ある程度の汎用性は持たせてあります。
コンソールアプリケーションなので、Windows 上で使用する場合は DOS プロンプト画面から実行する必要があります。
実際の集計作業では、CSV データを集計するためのツールと組み合わせ、バッチファイル実行の形で使用しました。
以下のファイルをダウンロードし、任意のディレクトリに解凍して下さい。圧縮形式は LHA です。振分けルールファイルのサンプルが含まれています。
DOS プロンプト画面、またはバッチファイルにて、以下のようにコマンドを実行させて下さい。
実行すると、以下のように実行結果が出力されます。
以下、各パラメータについて説明します。
振り分け元になる CSV ファイルの名前を指定します。
必ず第1パラメータで指定して下さい。ただし、/v オプションを指定する場合は省略しても構いません。
振分けルールを記述したファイルの名前を指定します。(振分けルールについては後述)
必ず第2パラメータで指定して下さい。ただし、/v オプションを指定する場合は省略しても構いません。
バージョン情報を表示します。
このオプションを指定した場合、振分け処理は行われません。従って、他のオプションはすべて省略して構いません。バージョン情報は、DOS プロンプト画面に以下のように出力されます。
非出力モードで動作します。
このオプションを指定した場合、振分け処理の結果はファイルに出力されません。振分け条件に適合したデータが、それぞれ何件ずつあったかだけがレポートされます。実際に処理を行う前に件数調査を行いたい場合などに使って下さい。
/o オプションを指定したからといって、必ずしも出力ファイルが更新されないというわけではありません。たとえば /c オプションが指定されていると、出力ファイルがすべて削除されてから処理が行われるため、/o オプションを指定していても出力ファイルは消えてしまいます。ご注意下さい。
出力先ファイルをクリアしてから処理を行います。
CSV Assorter の振分け結果は、通常は出力ファイルの末尾に追加される形で出力されていきます。しかし /c オプションが指定されていると、まずすべての出力ファイルを削除してから振分け処理を行います。
例えば、日次データを月次データに付加していくような使い方をする場合には指定なしで実行し、月次データをひとまとめにして処理する場合には /c オプションを指定する、というように使い分けて下さい。
サイレントモードで動作します。
このオプションを指定すると、実行結果レポートやエラーメッセージなどを出力しなくなります。
サイレントモードで動作している時でも、エラーメッセージ出力を有効にします。
通常の実行結果レポートに加えて、デバッグ用メッセージを出力します。
開発時のデバッグ用に使用するオプションなので、通常は指定しないで下さい。
入力ファイルの CSV データをどのように振分けるのか、その振分けの判断を、あらかじめ振分けルールファイルに記述しておきます。振分けルールファイルはテキストファイルとして(というより *.ini ファイル形式で)作成し、振分けルールを以下のような形式で記述します。
以下、各行について説明します。
セクション名です。必須。
振分けの判断に使用するカラム番号を指定します。
CSV データというものは、各カラムがカンマで区切られて並んでいますが、それらカラムのどれを見てデータの振分けを行うかを指定します。
出力ファイルを格納するディレクトリ名です。
デフォルト出力先ファイル名。
どの振分けルールにも適合しなかったデータを、ここで指定したファイルに出力します。
振分けルール数。
振分けルールの数を指定します。CSV Assorter はここで設定された数の分だけ、振分けルールを読み込みます。
振分けルールです。“=”記号の左側は、必ず数字3桁で記述して下さい。それ以外の桁数で記述した場合は無視されます。つまり
という記述は読み込まれますが、
や
などと記述されていると無視されます。
“=”記号の右側には、どんな値の時にどのファイルに出力するかを指定します。かならず両側を [ ] でくくります。上記に挙げた記述例だと、「左から2番目のカラムの値が ts_20030413 のデータ行は TestData.csv に出力し、enq_20030415 のデータ行は Enquete.csv に出力する(どちらでもないときは Others.csv に出力)」ということになります。
Windows 2000 でのみ、動作を確認しています。理屈の上では Windows 95/98/Me/XP などでも動作するはずなのですが、実際にはどうかわかりません。