So-net無料ブログ作成
検索選択

ツール

仕事でまたツールを作成する事になった。

本業はネットワークエンジニアなのでツールは基本的に片手間で作ってるんだけど、
今回頼まれたのは運用に組み込まれるので本格的に作りこまなければいけない。

時間がある今のうちにロジックを考えたい所なんだけど、まだ手付かず。

内容は簡単に言えば数万件程度の2つのCSVファイルの行単位の差異を抽出したいという物。
全体の件数は変動。

Excel2003なので6万件(65536だっけ?)以内だったら
エクセル吐き出してワークシート関数でソートやらvlookupなりして処理すれば早いんだろうけど
6万件超える可能性があるので、この手は使えない。

真っ先に思いつくのが1行ずつ読み込んで項目を配列に放り込んでループさせて比較していく方法かなぁ。

ソートした状態の中間ファイルも欲しいって要望があるので、
ソート処理も必須。

要望は分かりやすいんだが、どういうロジックがスマートなのか悩ましい所。

良いアイディアあればご教示下され。
nice!(0)  コメント(4) 

nice! 0

コメント 4

(*´ー`)

1.ソート、比較ともプログラム
2.ソートのみプログラムでテキスト吐き出して後はDIFFかDFにお任せ
3.OfficeWebCommpornent(Excelの倍の行と列あったはず)を使ってシートに貼り付けてソート、比較はExactを使用。
その後、Falseの行をFindしてリストアップ。
※3は遅いかも

ってとこかなぁ。
バブルソートは遅いしカッコワルイので辞めましょう(*´ー`)b
コムソートが個人的にお気に入りです。



by (*´ー`) (2012-06-05 23:36) 

shel

基本的に全てExcelマクロ処理で完結させるので1しか選択肢はないっす。
1の中でスマートなロジックあれば教えて下され。
by shel (2012-06-06 06:49) 

(*´ー`)

全部マクロでできますよ。
2はSendMessage使って、3のOWCはフォームに貼り付けて使うし。
まー1のがロジック楽だとは思いますけどね。

時間無いのでロジック考えるのは帰宅後にでも考えます。
by (*´ー`) (2012-06-06 07:29) 

shel

使う環境が分からないので外部ツールを使うという選択肢自体がありえないという意味ね。
そもそもそういう環境ならツールじゃなくて、もっと別のアプローチの方法があるので。

ちなみに差異部分から項目を抽出して、それをコマンドの引数に渡す所までが一連の流れ。
ロジック考えるのめんどい所を記事で書いてます。
by shel (2012-06-06 21:41) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。