統合メインルーチンマクロの作成(山紫水No.00002
sumi さん 06/12/25 23:39
 
山紫水明様。
ご無沙汰しております。Sumiです。
前回、冠詞置換マクロの際はお世話になりありがとうございました。
この冠詞置換マクロは、本文末尾に添付した内容で活躍中です。
さて、本日は、別件でお力添えを賜りたくご連絡させて頂く次第です。
ご検討の程、何卒よろしくお願い申し上げます。

[課題](@複数の通常マクロファイル+A複数の置換リスト)の統合メインルーチン
マクロの作成
[背景]現在、@は、約10個の通常マクロファイルの実行をメインルーチンマクロで
行っています。これに対して、Aは、各置換リスト毎に「変換リストによる連続置換
マクロv2.11」を用いて置換作業を行っています。
[実現したい内容]
1.上記Aの各置換リスト毎に「変換リストによる連続置換マクロv2.11」を用
いた置換作業を1本の置換メインルーチンマクロで実行できるようにすること。
2.更に、通常マクロファイル用のメインルーチンマクロにこの置換メインルーチン
マクロを組み込んだ統合メインルーチンマクロを作成すること。
 [条件]
(1)「変換リストによる連続置換マクロv2.11」のパラメータ=固定です。
1. フォルダ:C:\Program Files\Hidemaru
 2. ファイル:ファイル1〜ファイル20まで(可変であること)
 3. リスト内容確認は不要。
 4. 区切り点は、;(セミコロン)
 5. リスト置換方向:左→→右(R)
 6. リストのスペース処理:両端のスペースを含む(U)
 7. 置換対象:現在のファイル(G)
 8. 複数ファイル置換後の処理:指定不要
9. 結果情報:(必ず)表示する(H)
[注意]
 1. 置換リスト毎に約30秒(規定値。但し、リスト毎に可変であること)のpause
(休止期間:パソコンのCPUを冷却する期間)。

●目標マクロの内容は、フローチャート的に表すと、以下の様になります。
【統合メインルーチンマクロ】
1.通常マクロファイル実行部
マクロファイル1実行
     ・
     ・
     ・
マクロファイルn実行
(ファイル数は可変=ファイル名をプログラムに追加できること)
2.置換リスト連続置換実行部
置換リストパラメータ設定(プログラムで固定設定。使用時入力せず)
  置換リスト1
   休止期間1(30秒。可変であること)
  置換リスト2
   休止期間2(30秒。可変であること)
    ・
    ・
    ・
  置換リストn
   休止期間n(30秒。可変であること)
(ファイル数は可変=ファイル名をプログラムに追加できること)

[実現した場合の動作]
 統合メインルーチンマクロを起動することにより、従来の(@複数の通常マクロフ
ァイル+A複数の置換リスト)の実行が全自動で行える。処理に要する時間は、現在
のファイル及びリスト規模の場合、約30分〜60分。将来、数時間の規模になる場
合、夜間処理で対応する。

(冠詞置換マクロ)
//---------AddArticle.mac -----------------------------------//
#bx = x; #by = y;
#ime = imestate;
if( #ime ) imeswitch;
///////////////////////////////////////////(変更箇所)//////////////////////////
//$word = input( "置換対象語" );
    $word = gettext( seltopx, seltopy, selendx, selendy );
if( $word == "" ) endmacro;
#count = 0;
disabledraw;
///////////////////////////////////////////(変更箇所)//////////////////////////
  #byback = #by - 1;
  moveto #bx, #byback;
///////////////////////////////////////////(変更箇所)//////////////////////////
while( 1 ) {
//    searchdown $word, hilight; //検索語強調
    searchdown $word; //強調しない
    if( !result ) break;
    #count = #count + 1;
    escape;
    $top = char( code );
    if( #count == 1 ) {
        if( strstr( "aiueoAIUEO", $top ) < 0 ) $article = " a ";
        else $article = " an ";
    } else $article = " the ";
    insert $article;
}
moveto #bx, #by;
enabledraw;
message str(#count) + " 個挿入しました";
if( #ime ) imeswitch;
endmacro;
//-------------------------------------------------------------//
                                以 上

[ ]
RE:00002 統合メインルーチンマクロの作成No.00003
山紫水明 さん 06/12/26 20:17
 
 sumiさん,

 いろいろあるようですので,とりあえず以下のことを。

> 1. 置換リスト毎に約30秒(規定値。但し、リスト毎に可変であること)の
> pause(休止期間:パソコンのCPUを冷却する期間)。

 これについては,実行を一定時間止めることはできますが,それでも時間を計
るマクロを継続して実行するので,CPUへの負担という点では変わりないと思
います。

>1.通常マクロファイル実行部
>マクロファイル1実行

 これはすでに実行されているということですね。

>2.置換リスト連続置換実行部
>置換リストパラメータ設定(プログラムで固定設定。使用時入力せず)
>  置換リスト1
>   休止期間1(30秒。可変であること)
>  置換リスト2
>   休止期間2(30秒。可変であること)
>    ・
>    ・
>    ・
>  置換リストn
>   休止期間n(30秒。可変であること)
>(ファイル数は可変=ファイル名をプログラムに追加できること)

 上記のとおり休止は意味がないので,休止なしで連続して実行するしかないと
思います。他のアプリと併用すれば何か方法があるかもわかりませんが,わかり
ません。
 それで,連続して実行するとなれば,結局,複数の必要な置換リストを結合し
た新たな作業用リストを作る事になるでしょう。この作業をマクロで行うことは
できるかもしれません。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]