複数ファイルを次々置換したいですNo.01416
ぴろりん さん 00/06/28 12:17
 
はじめまして。ぴろりんともうします。

現在秀丸を使用して、複数のテキストファイルの置換作業を
行いたいと考えております。

テキストファイルは約1000個あり、内容を置換したり
編集したりするマクロを作成いたしました。
(かなり拙いものですが・・・)
このマクロを先ほどの約1000個余りのファイルに次々に
実行するマクロができないか腐心しております。
また、先の編集の対象ファイルはSGMLでして、
編集後の保存ファイル名にTXTの拡張子が付けられると
尚ありがたいです。
(最終的にエクセル又はアクセスでの処理を
考えているものですから・・・)

マクロヘルプや、こちらの会議室、ニフティーの会議室なども
捜してみましたが、検索の仕方が悪いのかうまく希望したものに
ヒットしません。

なにかご助言をいただけないかと考え、
こちらに入会させていただきました。

よろしくお願いいたします。

[ ]
RE:01416 複数ファイルを次々置換したいNo.01417
ひろ さん 00/06/28 17:07
 
 ぴろりんさん今日は、ひろです。
> テキストファイルは約1000個あり、内容を置換したり
> 編集したりするマクロを作成いたしました。
 この macro を仮に edito.mac とすると、次のような macro で出来るのでは
ないでしょうか?
//-------------------- sample macro ---------------------------------------
main:
  call change "file1.sgml";//full path の方が確実、ただし「\」は「\\」と書く
  // 以下同じ様に file の list を書いていく。
  // file list を自動取得したい場合は、DLL や他の tool との連動が必要
  endmacro;

change:
  loadfile $$1;
  execmacro "edito.mac";
  call get_base_name $$1;
  saveas $$return+".txt";
  return;

get_base_name://file name から拡張子を除いたものを取得する
  call get_extension $$1;
  if($$return!="."&&$$return!=""){
    $$1=leftstr($$1,strlen($$1)-strlen($$return)-1);
  }
  return $$1;

get_extension://拡張子を取得
  ##extension=strstr($$1,".");
  if(##extension==-1)return ".";
  else if(##extension==0)return "";
  while(1){
    ##extension=strlen($$1)-##extension-1;
    $$1=rightstr($$1,##extension);
    ##extension=strstr($$1,".");
    if(##extension==-1)break;
  }return $$1;
//--------------------------------------------------------------------------
----

[ ]
RE:01417 複数ファイルを次々置換したいNo.01418
ぴろりん さん 00/06/28 18:04
 
ひろさんこんにちわ。ぴろりんともうします。
早速のレスありがとうございます。

> この macro を仮に edito.mac とすると、次のような macro で出来るのでは
>ないでしょうか?

ありがとうございます。
早速試させていただこうと思います。

こういった処理方法について、何かよい参考書等はあるものでしょうか?
もしご存じでしたらお教えいただけるとありがたいです。

まずは取り急ぎ御礼まで。



[ ]
RE:01417 複数ファイルを次々置換したい+No.01419
ENCODINGSHIFTJIS さん 00/06/28 18:04
 
一つ秀丸への要望ですが
フィルター的秀丸 実行の 起動形式を追加できませんか

>秀丸.exe /filter:マクロ名 入力ファイル /output:出力ファイル

秀丸はsave 完了までコマンドラインに復帰しない(今は起動後即復帰)

あるいは、このような同等物、そうすると同様な要求は吸収できる

WSH やコマンドラインができる人はバッチ処理を組めるのだが
秀丸マクロ一本のひとは このタイプの一括処理のデザインパターンを
何かでサポートしないと。

その他: 大量データで最高速の処理速度を求めるなら、エディタは
適しません。一回で済むような物ではとても良いですが。

__END__

[ ]
RE:01419 複数ファイルを次々置換したい+No.01421
ぴろりん さん 00/06/29 14:22
 
ENCODINGSHIFTJISさん、こんにちわ。
ぴろりんともうします。

>WSH やコマンドラインができる人はバッチ処理を組めるのだが
>秀丸マクロ一本のひとは このタイプの一括処理のデザインパターンを

仰ることのすべては解りませんでしたが、
バッチ処理というのを忘れていました。
そういう方法もありましたね。
参考になりました。ありがとうございました。



[ ]
RE:01418 複数ファイルを次々置換したいNo.01424
ひろ さん 00/06/29 17:15
 
 ぴろりんさん今日は、ひろです。
> こういった処理方法について、何かよい参考書等はあるものでしょうか?
 秀丸の macro help と、
http://win.blue.co.jp/~jr-kun/hidemaru_qa/hmindex3.html
http://www.ceres.dti.ne.jp/~sugiura/hidemaru/lesson/index.html ぐらい
しか思いつきません。

[ ]
RE:01424 複数ファイルを次々置換したいNo.01425
ぴろりん さん 00/06/29 18:06
 
ひろさん、こんにちわ。ぴろりんです。

>http://win.blue.co.jp/~jr-kun/hidemaru_qa/hmindex3.html
>http://www.ceres.dti.ne.jp/~sugiura/hidemaru/lesson/index.html ぐらい
>しか思いつきません。

ありがとうございます。
これはよくわかります。
参考にさせていただきたいと思います。

[ ]
RE:01419 複数ファイルを次々置換したい+No.01427
Micky さん 00/06/30 23:37
 
Micky です。
まいどお世話になります。
こんな事も有ると言う事で、

>秀丸はsave 完了までコマンドラインに復帰しない(今は起動後即復帰)
ちょっときになったのですが、私が日ごろ使っているマシンは
Windows NT 4.0 sp3
ですが、コマンドラインでバッチを走らせ、秀丸で自動編集しています。
このバッチは
hidemaru /j1 /(1,1,800,200) /xmacro.mac file.tag
cd xxx
hidemaru /j1 /(10,10,800,200) /xmacro.mac file.tag
cd xxx
hidemaru /j1 /(10,10,800,200) /xmacro.mac files.tag
ってな具合で、マクロの中で save;exit;しています。
お気づきかもしれませんが、秀丸が「起動後即復帰」であれば
2,3個目の秀丸は「他の秀丸がマクロを実行中です」と言う類の
エラーになると思いますが、実際はなりません。
(マクロはすぐ終了する程度のものでは有りません。)
画面を見ていても、秀丸が終了するまでコマンドラインは止まっています。

ただ、以前 Windows 95 でやっていた時から NT に変えた時に
バッチファイルを変更した覚えが有りますので、
95は「起動後即復帰」だったかもしれません。

つまり、「起動後即復帰」は私の所では再現しません。
OSか、環境によるのかと思います。

全然別の無い様でしたら読み飛ばしてください。


[ ]