WinMergeについて

投稿日: 2005年04月26日 更新日: 2017年07月22日

今日WinMergeを使ってディレクトリ間のファイルの差異を調べたときに思ったこと。

  • 比較結果をテキストでエキスポートできない
  • 仕方なく比較結果をクリップボードにコピーしようと思ったらやたら時間がかかる(たかだか3万件程度なのに数分かかる)

比較結果を書き出せないのは機能がないからだとして、下のは何とかならないものだろうか。

現象としてはまず全選択するためにCtrl+Aすると時間がかかる。(ステータスバーに○件選択中です、と出る) 次に、コピーするためにCtrl+Cするとウインドウが応答しなくなってしまう。

コードを見ていないが、もしかして1ラインごとにクリップボードのバッファを拡張してるんじゃなかろうか。極端な話、毎ラインCStringにAddしてるとか。

もしそうだとしたら、先に全ライン走査して必要なバッファサイズを求めてからバッファを確保すれば解決できそう。

選択のほうもちょっと遅すぎる気がする。

コード見るより他のツール使ったほうが早いな。

追記:

ビンゴ。やっぱりCStringにAddしてた。DirView.cppのCDirView::OnEditCopy()から呼ばれるCDirView::GenerateReport()が該当箇所。

名前:宮内 はじめ

Code for Nagoya名誉代表

E2D3名古屋支部長

プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。

プロフィール

お問い合わせ