|
初めまして。
秀丸マクロを初めて触っています。
この度、コピーしているデータ(クリップボード上のデータ)を順次grepするマクロ
を作成したいと考えております。
現在、grepすることでクリップボードのデータが書き換わるような挙動をしていて困
っています。
https://crocro.com/pc/write/hide/chimarl03.html
このサイトを参考にさせていただき、現在このような内容になっております。
/* 選択した単語を1行づつgrepにかけるマクロ */
showcliphist;
disabledraw;
//clearcliphist;
beginclipboardread;
#ClipNo = 0;
$Name[#ClipNo] = getclipboard();
$LastChech = rightstr( $Name[#ClipNo], 1 );
if( $LastChech == "\n" ){
#LastLen = strlen( $Name[#ClipNo] )-1;
$Name[#ClipNo] = leftstr( $Name[#ClipNo],#LastLen );
}
while( $Name[#ClipNo] != "" ) {
message $Name[#ClipNo];
// grep $Name[#ClipNo] , "*.c;*.h;*.asm;*.asc;*.gpj;*.ld;*.800" , "D:\\git_
new" , regular, word, nocasesense, subdir, hilight;
#ClipNo = #ClipNo + 1;
$Name[#ClipNo] = getclipboard();
// 終末改行チェック
$LastChech = rightstr( $Name[#ClipNo], 1 );
if( $LastChech == "\n" ){
#LastLen = strlen( $Name[#ClipNo] )-1;
$Name[#ClipNo] = leftstr( $Name[#ClipNo],#LastLen );
}
}
enabledraw;
endmacro;
現在コメントアウトしている
>grep $Name[#ClipNo] , "*.c;*.h;*.asm;*.asc;*.gpj;*.ld;*.800" , "D:\\git_ne
w" , regular, word, nocasesense, subdir, hilight;
の行がネックとなっています。
例えば
aaa
bbb
ccc
ddd
というデータをコピーしている時に実行した場合。
コメントアウト有だと正常にメッセージBoxに「aaa,bbb,ccc,ddd」と順番に表示され
ます。
ですが、コメントアウトを解除すると
「aaa,aaa,aaa,aaa,aaa,aaa,aaa....」のように個数を超えてもずっとaaaを表示(&g
rep)し続けてしまいます。もちろんクリップボード上のデータが1行のみでも同じ事
象が発生いたします。
私のgrep文の書き方の問題なのでしょうか?
それとも、grep実行時にクリップボード上のデータが書き換わる挙動があるのでしょ
うか?
お手数ですがお力添えいただければ幸いです。よろしくお願いいたします。
|
|