VBSでソート&ファイル分割
VBScriptでCSVファイルを最大5件のレコードになるように
ファイル分割しようとしています。
ただし、同じコードが複数のファイルに分かれないようにしたいです。
入力するCSVファイル(test_in.csv)は以下のような形式です。
(実際のファイルに項目行はありません)
連番,コード,フラグ,日付
01,0001,A,20091001
02,0002,A,20091001
03,0003,A,20091002
04,0001,U,20091003
05,0003,D,20091003
06,0004,A,20091003
07,0005,A,20091003
08,0001,D,20091005
09,0006,A,20091003
10,0006,A,20091003
※入力ファイルに同じコードのレコードが5件を超えることはありません)
上記の入力ファイルの場合は以下の3つのファイルに分割することになります。
【test_out_001.csv】
01,0001,A,20091001
04,0001,U,20091003
08,0001,D,20091005
02,0002,A,20091001
【test_out_002.csv】
03,0003,A,20091002
05,0003,D,20091003
06,0004,A,20091003
07,0005,A,20091003
【test_out_003.csv】
09,0006,A,20091003
10,0006,A,20091003
※コード"0003"のレコードは2件あるので、test_out_001.csvには出力せず、
test_out_002.csvに出力します。
コード"0006"についても同様でtest_out_003.csvに出力します。
処理の手順としては
入力ファイルのデータをコードでソートし、
1ファイルに5件を超えないように追加していくのかと思いますが、
ソートと5件制限はどのように記述すればよいでしょうか?
お礼
kirikirikaz様、 またまた詳しく、さらに調べていただいてまで説明いただき、 有り難うございました。 シュワルツ変換はソートの例として出ていたので、 てっきりそうかなと思いましたが、勉強しなければいけないですね。 mapの目的も分かりました。 聞きたかったのは、 1レコードの中をソートするのと、 レコード自体をソートするのとでは、 書き方でどう違うのかというポイントでしたが、 シュワルツ変換はソートではないということで、 自分なりに研究してみます。 (前者は単純sortを、後者はシュワルツ変換を使うのかなと思っていました。) とにかく今はちゃんと動いております。 大変お世話になりました。 今後とも宜しくお願いいたします。 20点では申し訳在りませんが、それしか付けられないので。 有り難うございました。