この様なマクロできますでしょうか?No.04859
suzuco さん 05/10/16 21:14
 
下記の様な、文字列の修正で困っております。
秀丸は正規購入して、マクロをと思ったのですが、素人の当方では無理そうです。
そこで、秀丸の達人方のお知恵をお借りしたいと思います。

下記は、ある自動実行をするアプリケーションのデータです。
XYはモニタの座標を表します。
任意の動作を、このアプリケーションで実行して、それらの動作を重ねて始まりから
終わりまでの一連の動作をさせる場合、一番最初のCommandの番号から 『通し番号』
でふり直さなければなりません。また、XYの座標等も同様に 『1加えた数字の通し番
号』に直さなければなりません。

もし、お力をお貸し頂けるのであれば、気持ちですが、お礼をさし上げたく思います。
以前も工作機械のNCデータの編集のマクロ作成の際、お力をお借りしました。
当方、勉強したのですが、一向に判りませんでした。HELPにも出てないコマンドもあ
り今でもなぜなるのかわかりません。
その様な状態ですが、よろしくお願い致します。

 
【参考文字列-1】※ある一部分を抜粋
Command4=秒
Key4=8
X5=764
Y5=548
Time5=2
Type5=1/10秒
Command5=秒
Key5=8
X6=764
Y6=548
Time6=2
Type6=1/10秒
Command6=秒
Key6=8
X7=764
Y7=548
Time7=2
Type7=1/10秒
 ↓
 ↓
 ↓
続きます。

【参考文字列-2】 ※編集の説明
Command●=秒    →●は任意の数字からスタート MAX4桁
Key●=8
X(●+1)=764
Y(●+1)=548
Time(●+1)=2
Type(●+1)=1/10秒
Command■=秒     →■はCommand●に+1を足した数字 →(●+2)
Key■=8
X(■+1)=764
Y(■+1)+1)=548
Time(■+1)=2
Type(■+1)=1/10秒
Command▲=秒     →▲はCommand■に+1を足した数字  →(●+3)
Key▲=8
X(▲+1)=764
Y(▲+1)=548
Time(▲+1)=2
Type(▲+1)=1/10秒
 ↓
 ↓
 ↓
続きます。

【参考文字列-3】 この様になって欲しい
※例えば、一番最初のCommand4の数字を『40』からスタートさせた場合

Command40=秒
Key40=8
X41=764
Y41=548
Time41=2
Type41=1/10秒

Command41=秒
Key41=8
X42=764
Y42=548
Time42=2
Type42=1/10秒

Command42=秒
Key42=8
X43=764
Y43=548
Time43=2
Type43=1/10秒
 ↓
 ↓
 ↓
続きます。


となって欲しいのです。
XYの座標類は変わって欲しくありません。
それと、ommandの前の行が一行空いてほしいのです。

この様な、文字列の編集ができるマクロできるでしょうか?

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

[ ]
RE:04859 この様なマクロできますでしょうNo.04860
白雲斎 さん 05/10/17 00:46
 
こんにちは、白雲斎です。

多分、大丈夫と思いますが・・・。

バージョン 5.06 でのみ動作確認をしました。
実稼動は、テスト用データで確認をした後に行ってください。

**** これ以降マクロ *******************************************

// “Command”キーの行頭、もしくは、それより上の行にカーソルを置いて
// 実行してください。

if( version < 500 ) endmacro;

// 検索キーワード
$key = "^((Command|Key|X|Y|Time|Type))[0-9]+=(?\\1)";

// キー名を出現順に配列格納
$keyNames[0] = "Command";
$keyNames[1] = "Key";
$keyNames[2] = "X";
$keyNames[3] = "Y";
$keyNames[4] = "Time";
$keyNames[5] = "Type";

#turnback = 5;

//-------------------------------------------------------------

$sb = searchbuffer;
#so = searchoption;
$rb = replacebuffer;

$n = input("開始番号の入力");
if( result == false || $n == "" ) endmacro;
#cmdNum = val($n);
// if( $n != str(#cmdNum) || #cmdNum < 1 )
if( $n != str(#cmdNum) )
{
    message "不正な数値の入力!";
    endmacro;
}

#i = 0;
disabledraw;
searchdown2 $key, regular, casesense;
while( result )
{
    $buff = gettext(seltopx, seltopy, selendx, selendy);
    if( $buff != $keyNames[#i] ) goto ERR;
    moveto foundendx, foundendy;
    beginsel;
    gowordend;

    if( #i == 0 )
    {
        insert str(#cmdNum);
        golinetop2;
        left;
        if( result && column ) insert "\n";
        right;
    }
    else if( #i == 1 )
    {
        insert str(#cmdNum);
        #cmdNum = #cmdNum + 1;
    }
    else
    {
        insert str(#cmdNum);
    }

    if( #i == #turnback ) #i = 0;
    else #i = #i + 1;

    finddown;
}

enabledraw;
if(#i) goto ERR;
setsearch $sb, #so;
setreplace $rb;
endmacro;

ERR:
message "キーの検索に失敗!\n\n抜け、重複等をチェックせよ!";
setsearch $sb, #so;
setreplace $rb;
endmacro;

[ ]
RE:04860 この様なマクロできますでしょうNo.04861
suzuco さん 05/10/17 03:04
 
 suzucoこと鈴木といいます。
早々のご回答ありがとうございます。
当方、4.14のVerでしたので、早々最新版の5.06にしてみました。
ですが、結果は『ダメ』でした。
 状況ですが・・・・・・
まず、ご指示のこれ以降マクロの部分をコピーして、テスト.macにしました。
 ご指示のとおり、変更したいCommand部分の一行上にカーソルをあてて、先ほどの
テスト.macを呼び出し実行、すると開始番号の入力を聞かれ、任意の開始数字を入力、
OKをする。
 すると『キーの検索に失敗!抜け、重複等をチェックせよ!』となります。
 例えば、【参考文字列-1】のCommand4=秒からType7=1/10秒まででも実行されませ
んでした。
 何が悪いのでしょうか?
 さらに、【参考文字列-1】のCommand4 の4や他の関連数字を事前に削除しても、
実行されませんでした。

気にかかることとして
インストールの際、前の秀丸に上書き(アンインストール)をしないのが悪かったの
でしょうか?動作している様に思えますが・・・・・・
 
引き続き、ご指導お願いします。
 ですが、今回も大尊敬なのです、何故にあの様なマクロができるのでしょう。スゴ
イです。

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

[ ]
RE:04861 この様なマクロできますでしょうNo.04862
三月 さん 05/10/17 07:06
 
> すると『キーの検索に失敗!抜け、重複等をチェックせよ!』となります。
> 例えば、【参考文字列-1】のCommand4=秒からType7=1/10秒まででも実行されませ
>んでした。
> 何が悪いのでしょうか?
> さらに、【参考文字列-1】のCommand4 の4や他の関連数字を事前に削除しても、
>実行されませんでした。
>
試したところ、
動作環境−検索 の 「検索での表示」を「範囲選択」に。
ファイルタイプ別の設定−詳細の「フリーカーソルモード」をオフに。
して
検索キーを
$key = "^((Command|Key|X|Y|Time|Type))";
に変えたら動きましたよ。

[ ]
RE:04862 この様なマクロできますでしょうNo.04863
suzuco さん 05/10/17 09:49
 
三月さまありがとうございます。
suzucoこと鈴木です。

早々、ご指示のとおり
>動作環境−検索 の 「検索での表示」を「範囲選択」に。
>ファイルタイプ別の設定−詳細の「フリーカーソルモード」をオフに。
>して
>検索キーを
>$key = "^((Command|Key|X|Y|Time|Type))";
>に変えたら動きましたよ。

の各設定を変更後、作業しました。
結論ですが、最初のCommandの数字のみ 変更されました。
以降の数字は変更ありませんでした。
以前の検索キーにマクロを変更しても、結果は同様でした。
各設定が影響して以前はまったくの無反応だったようです。
 今回、三月さまの設定変更で、最初の一行のみですが変更がなされました。以降も
連続して変更できればと思いますが、引き続きよろしくお願い致します。
 
 ですが、秀丸のパワーユーザー様はスゴイです。同ソフトの設定の詳細まで把握さ
れ、関心しきりです。

 引き続きご指南よろしくお願い致します。
 

[ ]
RE:04859 この様なマクロできますでしょうNo.04864
suzuco さん 05/10/17 09:58
 
suzucoです。
お世話になります。

できました。v(^_^)v 超感激です。
 設定でフリーカーソルモードがONにしてしまいました。ヘルプを読んだら、
『?』に気づき、読み返したら、『OFF』にせよとあり。間違った設定でした。
 それを直したら、無事に動きました。
本当にありがとうございます。
 
 おふた方へは、気持ちですがお礼をさし上げたいと思います。
どうしたらいいでしょうか?

 本当にありがとうございます。
 毎回(今回で2回目ですが)スゴイ方々です。

[ ]
RE:04863 この様なマクロできますでしょうNo.04865
suzuco さん 05/10/17 10:08
 
三月さまありがとうございます。
suzucoこと鈴木です。

先にもご案内しましたが、結果できました。
ですが、検索の行、最初の物だと動きましたが、ご指示の

>>$key = "^((Command|Key|X|Y|Time|Type))";

にしても動きませんでした。

ですが、各種設定の変更のご教授を頂、無事、良好なる結果を得ることができました。

 お礼の件に付きましてもどの様な方法がいいのか、お知いただければ幸いです。

 単調な文字列の変更の、あの苦労から開放されたと思ったら、もうぉ〜何て感謝し
ていいのやら(;^_^A &m(_ _)m

本当に、本当に、ありがとうございました。
まずはご報告まで・・・・・・m(_ _)m


[ ]
RE:04862 この様なマクロできますでしょうNo.04867
白雲斎 さん 05/10/17 16:37
 
こんにちは、白雲斎です。

>動作環境−検索 の 「検索での表示」を「範囲選択」に。
>ファイルタイプ別の設定−詳細の「フリーカーソルモード」をオフに。
>して
>検索キーを
>$key = "^((Command|Key|X|Y|Time|Type))";
>に変えたら動きましたよ。

三月さん、補足ありがとうございます。
環境設定の違いを考慮していませんでした。

以下、suzucoさんへ

検索キーワードを
$key = "^((Command|Key|X|Y|Time|Type))[0-9]+=(?\\1)";
としたのは、目的以外の Command や Type などにヒットする確率が0%であ
ることを確約できない(知らない)ので、安全の為の処置です。

また、

> さらに、【参考文字列-1】のCommand4 の4や他の関連数字を事前に削除しても、
>実行されませんでした。

このような事態を想定していません。と言うか、キーワードの後には必ず数字
があることを見越した処理をしています。
ですので、検索キーワードを
$key = "^(Command|Key|X|Y|Time|Type)";
として実行すると、正しい結果が得られません。
(それように、処理を書き直せば可能ですが・・・)

検索キーワード "^(Command|Key|X|Y|Time|Type)" で実行すると、

Command4=秒
Key=8
X5=764
Y5=548
Time5=2
Type5=1/10秒

    ▼開始番号を40として実行

Command40=秒
Key408          ← “=”が40に置き換わっている
X41=764
Y41=548
Time41=2
Type41=1/10秒

と言うことで、関連数字を事前に削除しての実行はしないでください。
そして、不測の事態を避けるためにも、検索キーワードは

$key = "^((Command|Key|X|Y|Time|Type))[0-9]+=(?\\1)";

のまま、運用されることをお勧めします。

[ ]
RE:04864 この様なマクロできますでしょうNo.04868
白雲斎 さん 05/10/17 16:37
 
こんにちは、白雲斎です。

> おふた方へは、気持ちですがお礼をさし上げたいと思います。
>どうしたらいいでしょうか?

お気持ちはうれしい限りですが、このようなことはお止めになってください。
物をやり取りする為には、先ず、お互いの個人情報をやり取りしなければなり
ません。
これは、不特定多数の人が行き交う掲示板では、とっても危険な行為です。

お金を払うから、完璧なマクロを作成して欲しいとお望みならば、この掲示板
ではなく、「サイトー企画」さんに直接交渉をしたほうが、安全で確実です。

[ ]
RE:04868 この様なマクロできますでしょうNo.04869
suzuco さん 05/10/18 00:06
 
suzucoこと鈴木です。
お世話になります。

そうですか、ですよね掲示板でのやり取りはリスクがありますよね。
前回と言い、今回と言いお世話になりっぱなしで恐縮しております。
 有償の場合はサイト管理者へとの事、了解しました。
 
こんな当方ですが、秀丸とそこに集う方々(マクロの達人方々)に感謝して、PCを
触るごとに思い起こします。
 また、お世話になることもあるかと思います。その節はよろしくお願い致します。
  今回は本当にありがとうございました。
          m(_ _)m











>こんにちは、白雲斎です。
>
>> おふた方へは、気持ちですがお礼をさし上げたいと思います。
>>どうしたらいいでしょうか?
>
>お気持ちはうれしい限りですが、このようなことはお止めになってください。
>物をやり取りする為には、先ず、お互いの個人情報をやり取りしなければなり
>ません。
>これは、不特定多数の人が行き交う掲示板では、とっても危険な行為です。
>
>お金を払うから、完璧なマクロを作成して欲しいとお望みならば、この掲示板
>ではなく、「サイトー企画」さんに直接交渉をしたほうが、安全で確実です。

[ ]
RE:04862 この様なマクロできますでしょうNo.04870
suzuco さん 05/10/18 21:07
 
suzucoです。
三月さん、ありがとうございました。
m(_ _)m

[ ]
RE:04869 この様なマクロできますでしょうNo.04871
きいろいまふらあ さん 05/10/19 01:34
 
きいろいまふらあと申します。

横から首をつっこんで話をこじれさせてしまいそうで気がひけるのですが、サイ
トー企画の方がこの会議室をコンスタントに見ておられるかわからないので、敢
えて発言させていただきます。

> 有償の場合はサイト管理者へとの事、了解しました。

サイトー企画さん(白雲斎さんが書かれたのは、サイト管理者というよりも、ソ
フトウェアの開発元という意味かと思います)は、有償でマクロの作成を請け負
う、というようなサービスを提供するというようなことは公言されていないと思
います。

もちろん交渉されることに対して、それを止めようという気はありませんし、そ
れを請けるかどうかはサイトー企画さんが判断されることであるのは承知の上で
の老婆心からのコメントです。

会議室の趣旨と関係ない発言、失礼いたしました。

[ ]
RE:04871 この様なマクロできますでしょうNo.04872
白雲斎 さん 05/10/19 03:34
 
こんにちは、白雲斎です。

>きいろいまふらあと申します。
>
>> 有償の場合はサイト管理者へとの事、了解しました。
>
>サイトー企画さん(白雲斎さんが書かれたのは、サイト管理者というよりも、ソ
>フトウェアの開発元という意味かと思います)は、有償でマクロの作成を請け負
>う、というようなサービスを提供するというようなことは公言されていないと思
>います。
>
>もちろん交渉されることに対して、それを止めようという気はありませんし、そ
>れを請けるかどうかはサイトー企画さんが判断されることであるのは承知の上で
>の老婆心からのコメントです。

実は、私の発言が誤解を招くのではと内々に思い、その旨を投稿しようか
迷っていました。
“きいろいまふらあ”さんの抱かれる危惧はそのとおりで、私の書き方が中途
半端で曖昧でした。

>会議室の趣旨と関係ない発言、失礼いたしました。

いえ、この発言に私は助かりました。

尚、“#04868”の発言を以下のように読み替えてもらえるとありがたいです。
---------------------------------------------------------------------
『何らかのお礼をしたい』などと無粋なことは言わないで欲しい。

掲示板で個人情報をやり取りする行為は、危険であることを認識して欲しい。

掲示板でマクロ作成の依頼をしても、規模の大きさや複雑さから秀丸ユーザー
が手を出してくれない場合は、開発元の「サイトー企画」に、対価を出費する
用意がある事を告げ、相談してみてはどうですか。
ただし、これは私個人の意見ですから、「サイトー企画」がどのような対応を
なされるのかは知りません。
---------------------------------------------------------------------


※「サイトー企画」殿へ
このスレッドで私が述べている「サイトー企画への交渉・相談」が不適切で迷
惑な発言でしたら、注意や訂正をお願いします。

[ ]
RE:04872 この様なマクロできますでしょうNo.04873
秀丸担当 さん 05/10/19 18:24
 

>※「サイトー企画」殿へ
>このスレッドで私が述べている「サイトー企画への交渉・相談」が不適切で迷
>惑な発言でしたら、注意や訂正をお願いします。

マクロ制作の依頼などは、原則的にはサイトー企画として受け付けているという
ことはないです。
相談があるようでしたら、その都度考えることもあるかもしれません。

簡単なものでしたら質問に対して普通に回答する形で作ってしまうこともあるか
もしれないですし、大変なものでしたらアドバイスに留めて断ることもあるかも
しれません。この会議室を紹介するということもあります。
というわけで、臨機応変ということでお願いします。

[ ]
RE:04859 この様なマクロできますでしょうNo.04917
suzuco さん 05/11/12 19:09
 
suzucoこと鈴木です。
白雲斎さま、三月さま、その節は大変お世話になりました。
本当に感激でした。
 最近レスを覗いたら、続いていたので、改めてお礼のレスをさせていただきます。
 マクロ作成ができない当方にとっては白雲斎さま、三月さまにおすがりするしかあ
りません。今でもなぜあのようになるのか、ヘルプを見てもまったく判りません。
 そんな当方の要望をお聞きいただき、マクロをお作りいただけた、それが無事にき
ちんと動く・・・・もう、感激感激です。
 当方ができることは、秀丸の口コミ宣伝くらいです。
また、たまにこの様に覗かせていただきます。

 秀丸担当さまへも当方ら超初心者へお手を差伸べていただければ幸いです。
 
  白雲斎さま、三月さま、本当にありがとうございました。m(_ _)m
 

 

[ ]