- 締切済み
VBSを使用し、テキストファイルをキー項目で分割コピーしたいです
お世話になります。 VBSにて、テキストファイル(=全社データ.csv)をキー項目(=[部署名])で分割コピーし、 各々別フォルダに保存したいと思っています。 全社データ.csvのデータ量が莫大なので、より高速な手段をとりたいと思っているのと、 VBS初心者のため一般的にはどういう方法が王道なのかがわからないため アドバイスをいただければと思い投稿させていただきました。 【現在漠然と考えている手法1】 ADOでテキストファイルを読み込みSQLで分割する方法。 (部署名は変数で渡し、部署分ループしファイルを作成) Set RS = objADO.Execute("select * from 全社.csv where 部署名='営業部'")という感じを考えています。 【現在漠然と考えている手法2】 テキストファイルを部署名でソートし、上から順次1行ずつ読み込み部署名を判定し、分割コピーする方法。 想像すると手法1のほうが全然高速そうなのですが、一般的な方法はどんな感じなのでしょうか? たいぶ能力的におぼつかないので、 両方の方法を調べてプログラムを作成しテストしてみるとなると相当時間がかかってしまいそうなので、 方向性を教えていただけると大変助かります。 漠然とした手法でかまいませんので、お時間があれば是非アドバイスよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
お礼
こんばんは。ご回答ありがとうございます。 全体像について私なりにご説明させていただきますね。 システムの目的は、 DrSumというデータウエアハウス経由で各部署が自部署の売上集計を参照できるようにする ということです。 そのために、DrSumが参照する指定フォルダにCSV(マスタ系3ファイル、月次集計のトランザクション系1ファイル)を生成したいです。 想定している手順は、 1.データベース管理会社のサーバーに毎朝こちらで指定した形の CSVファイル(上記マスタ系3ファイル、トランザクション系1ファイル×3(=ネットワーク負荷の問題で直近3ヶ月分)) を毎朝生成してくれます。 2.そのファイルをこちらのサーバーにコピー(既存ファイルは上書き)します。 3.フォルダ内のファイル(3年分の過去ファイルと)を全てマージします。 4.マージしたファイルを部署別データに分割コピーし、アクセス権限の設定された各フォルダに配布します。 質問させていただいたのは、4.なのですが、全社データを自動分割したい理由としては 1.現状の購入内容のDrSum上ではアクセス権限を設定出来ないため、 フォルダのアクセス権限で自部署の売上集計だけを参照できるようにしたい 2.部署別に分けたファイルを毎朝生成してもらうことは可能ですが、 部署変更のたびにDB管理会社に変更を依頼したくない というオーダーからです。 >システム設計に無理は無いでしょうね。 無理があるのか判断できるほど分っている自信がありませんので、答えに窮してしまいますが、 無理がある気がモロモロのアドバイスよりして参りました。 3.のマージがReadAllでガツガツ結合したら、(以前3.で質問させていただいたものですhttp://okwave.jp/qa3122444.html) 思いのほか早かった(10分弱)もんですから、 その流れでテキストって処理早いんだなぁ。。。っと思い、 夜間バッチだから多少時間かかっても全然大丈夫!とも思い油断しておりました。 >多量になると、少量の場合の延長線で考えてはならない 勉強になります。 すみません、今日は回答を拝見したのが遅かったものですから、 あまりご回答を真に理解してお礼を書かせていただけてないのですが、 明日、回答を熟読させていただきたいと思います。 お忙しい中何度もお時間をさいていただきありがとうございました。