複数のファイルに対して同じ処理を適用すNo.08646
dmc さん 18/03/19 01:49
 
あるフォルダ内の全テキストファイルに対して、同一のマクロを適用整形して、結果
を一つのファイルに纏めるマクロを作ろうとしています。

全体制御マクロA.mac
一つのファイル整形マクロB.mac
対象の.txtファイル群

これらを一つのフォルダに置いて、A.macを実行すると結果ファイルが出来上がると
いう形を目指しています。
B.macは完成済みです。

全体制御マクロA.macを作るにあたって、鍵となるポイントやコマンドなどをアドバ
イスお願いできないでしょうか。

[ ]
RE:08646 複数のファイルに対して同じ処理No.08648
Iranoan さん 18/03/19 03:05
 
dmcさん今日は、Iranoan です
> あるフォルダ内の全テキストファイルに対して、同一のマクロを適用整形して、結
>果を一つのファイルに纏めるマクロを作ろうとしています。
昔作ったなあ〜、とおもい
> 複数ファイルにマクロ実行 Ver.1.07
> 開いている全てのファイル、若しくは特定のフォルダにあるファイルに対して、任
>意のマクロを纏めて実行します
> http://iranoan.my.coocan.jp/hidemaru/macro.htm#BATCH
が使えませんかね
最近秀丸自体を使っていないので、最新版の秀丸では確認していませんが

> 全体制御マクロA.macを作るにあたって、鍵となるポイントやコマンドなどをアド
>バイスお願いできないでしょうか。
ファイルに一文字でも含まれていたら、grep でリストが出来るので、あとはその結
果から書くファイルを開いてやって、目的のファイルを処理してやれば良いと思います
問題になりそうなのは、
・マクロ B で例外処理などでカバーされていない問題がないか?
・処理するファイルで
  * 文字コードをご認識して開いた時はどうするか?
  * すでに開いていた時ははいた背魚をどうするか?
あたりでしょうか

[ ]
RE:08648 複数のファイルに対して同じ処理No.08649
dmc さん 18/03/20 15:46
 
Iranoan さんアドバイスありがとうございます
返信が遅れてすみませんでした。

よく考えたら整形する前のテキストファイル群をコマンドプロンプトで連結
して一個のファイルにしてから処理すれば良い事に気づき、新たなマクロを作らずに
済みました。
copy aaa.txt + bbb.txt + ccc.txt all.txt
元ファイルが30個ほどでしたが一行で処理できました

・・・・・・
もしマクロでやるとしたら
処理するファイルリストを作成or取得
新規秀丸を開きこれを出力ファイルとする
リストを元に1ファイルづつ開きexecmacro で個別処理実行
コピーして出力ファイルにペースト
秀丸の切替はsetactivehidemaru
各秀丸のハンドラ取得は findhidemaru($$fname);
このような要素で作れそうですね


[ ]