|
山紫水明様。
ご無沙汰しております。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;
//-------------------------------------------------------------//
以 上
|
|