FastPerm
秀丸用一括置換ツール(
その他のアプリはこちら

テキストエディタと言えば、秀丸でしょうか。
このソフトは、秀丸のマクロ機能から呼び出す、高速置換ツールです。

秀丸にはGrepと言う複数のファイルから任意のキーワードが出現する位置を一括で検索する機能がありますが、このリストを元に検索対象ファイル自体を一括で置換する、と言う作業を高速に実現しようと作りました。

同様なツールが既に、秀丸のホームページマクロライブラリに登録されていますが、大量のファイルを一括置換しようとするとどうしてもスピードが気になります。
 本ソフトでは、200個のファイルの中からGrepした2361行のリストを約0.7秒弱で置換する実力を持っています。

FastPerm2になって、コードページの類推に時間を要するので置換対象が多数のファイルになる場合には、4万行のファイル1コあたり50ms程度延びますが、たいていの場合は置換完了まで1秒未満で終わるようです。

  ほかの方が制作されたものに、DLLで置換を行うと言うものがありましたが同じ条件で12秒ほどかかっていましたので、かなりの高速化が見込めると思います。(処理時間は作者の環境での例であり、PCや対象のファイル状態により変わります)

Grep結果を一時的にファイル保存しますので、置換完了後はGrep結果が“Grep.tmp”と言うファイル名に変わっていますが、実体のファイルはexe側で削除済みです。

 興味のある方は、以下よりダウンロードして使ってみてください。

チマチマ変更をしましたので、更新履歴を読んでください。

ZIP FastPerm2.zip (2012/08/19update)

このファイルは、NortonAntiVirus2012でスキャン済みです。

FastPerm110.zip (2005/02/27update)
このzipファイルは、ノートンアンチウィルス2005でスキャン済みです。

FastPerm.zip (初版)
このzipファイルは、ノートンアンチウィルス2004でスキャン済みです。

 

動作環境 Microsoft Windows XP / Windows 7

・Windows9x/Me/NT4/Vistaに関して確認を取っていません。
・FastPerm2は .NET 3.5 以上の環境が必要です、.NET 2.0 でも動作するかも知れませんが確認をとっていません。
・秀丸はver.8.13で確認しています。
 
・FastPerm110 と初版は Microsoft Visual Basic 6(sp6), Microsoft Internet Explorer6 の環境で制作していますので、VB6sp6のランタイムが必要です。
・秀丸は、ver.4.07で動作確認をしています。

インストール

・ダウンロードした圧縮ファイルを解凍し、秀丸のマクロ用のパスにおいて、“FastPerm.mac”をマクロ登録して下さい。 “FastPerm.exe”も、必ず同じ場所に置いておいてください。 win2000/XPの環境では、VB6のランタイムをOSが持っているハズですので、これで動作すると思いますが、不正終了するようでしたら、ランタイムとIEを更新してください。

使用方法

・普通にGrepしてリストが表示されたら、このリストに対し必要な置換を行って下さい。
・ その後、“FastPerm.mac”を実行すると、置換結果をテンポラリファイルに保存した後、“FastPerm.exe”が起動され、置換した内容が検索対象のファイルに反映されます。
テンポラリファイルは、Grepを実行したフォルダに作成されますので、テンポラリを保存できる容量の空きディスクが必要です。

ご注意
 本ソフトは、速度優先で制作しましたので、対象ファイルの置換位置の厳密なチェックを行っていません。 このため、Grepを実行した後に、行が増減するような編集を対象のファイルに施した場合でも、Grep結果の行番号に従って、一行丸ごと置換してしまいます。
 このようないぢわるをすると大事なファイルを傷つけることとなりますので、充分に注して下さい。
 また、置換結果が行を増減させるような場合にも同様な問題が生じます。 このような場合でも、作者は何ら責任を取れませんので、悪しからずご了承下さい。
 1行の概念:改行で1行を認識しています。

アンインストール

・ファイルを削除するだけです、Windowsのシステムに何ら影響を与えていません。


更新履歴

【2012/08/19】バージョンアップ

・.NET版に全面的に書き直しました。

・複数のコードページに対応しました。

 Grep結果からコードページを類推するのは難しいので、置換先のファイル個々からコードページを推定しています。
 コードページの推定にはNET上を徘徊して得た情報を元に、独自の高速化を施して実装しています。

・マクロファイルの中にオプションがあります(初版からですが)。

$opt = "show"; // show | noshow

と記述のあるところを、

$opt = "noshow";

とすることによって、全く何も言わずに終わることもできます。 (デフォルトでは、完了時に処理時間を表示するダイアログが開きます。)

・ZIPファイルには、FastPerm2.mac、FastPerm2.exe が入っています。 使用方法の欄では、それぞれ上記ファイル名に読み替えてください。

【2009/04/01】マイナー・バージョンアップ

・若干のバグ修正
ファイル名など変更しませんでしたが、プログレスバーの動作についてのバグを修正しています。 本体動作には何ら関係ありません。
【2005/02/27】バージョンアップ
・実行ファイル名が“FastPerm110.exe”となりましたので、旧バージョンと混在できます、大量ファイル、複数条件でGrepした場合などは、圧倒的に新版が有利ですが、逆に少ないファイル/行数の場合にはリストのソートをしない分旧版の方が高速です、お使いになる状況に合わせて使い分けて下さい。

・リスト上に散らばった同一ファイルへのアクセスを最小限になるよう最適化した。(このため、非常に行数の少ないリストを置換する場合の処理時間が少し延びた、でも 0.5秒程度)

・表示を少しすっきりさせた。

※既知の問題 Grep対象がネットワークパスを含んでいる場合、現バージョンではFastPerm110.exeが待機状態から帰って来なくなります、このときは、お手数ですがタスクマネージャから終了させて下さい、現在対応を検討中です。このときでも、まだ置換前なのでなにも悪さはしていません。

【2004/01/15】初版公開

免責 (決まり文句ですが)

・本ソフトを運用した結果による如何なる不利益に関しても制作者は何ら責任を負いません。
・特に本ソフトは、ユーザーのデータを編集しますので、オリジナル性の高いデータは念のためバックアップをお取りになることをお薦めします。データの消失、破壊などがあっても作者は何ら責任を負うことができません。
・本ソフト自体の不具合に関し、修正は随時行うものとしますが、責任範囲ではなく制作者の任意とします。 よって、修正時期やこれにかかる費用の捻出に関し何ら責任を負いません。

著作権の留保

・本ソフトは“kazoo”が著作権を留保します。 本ソフトの利用者は使用する便益を享受するものであって、これを自己の所有物であるかのように他人に譲渡したり、著作者表示を隠して配布するなど著作者の権利を著しく害するような行為を行ってはなりません。

・他のメディアに転載する場合は、事前の文書による許諾が必要です。

・ただし、本ソフトを使用するにあたり、使用者は何ら責務を負いません。 著作権の所在を明確にすることを条件に、自由に二次配布を行うことが出来ます。