|
恭平さん今日は、Iranoan です。
> http://の部分だけでなく、その後2行くらい同時に取り出すことはできませんか。
> そのhttp://が何を言っているか知りたいのです。
この 2 行って、grep を行った元のファイルの 2 行ですよね。
理論的には出来ますが、ルーチンが複雑になるのでパスします。ただ、grep
の結果を加工することを前提として、
(1) 重複している URL はファイルから削除
それ以外の行はそのまま
(2) http://〜.htm の URL はマクロ終了後、[下候補] で検索可能とすること
で、URL は比較的早く探せる
というマクロなら簡単です。
//-------------------------------------------------------------------
//検索状態を保持
#reg_search = searchmode;
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",1;
envchanged;
closereg;
//URL の取り出し
disabledraw;
setsearch "http://[!-&(-9;-~]+\.html?", 16;//←相当適当な判定
#i = 0;
$s[0] = "\n";
gofiletop;
while ( 1 ){
finddown;
if( !result ) break;
$tmp = gettext( seltopx, seltopy, selendx, selendy ) + "\n";
#j = 0;
while( #j <= #i ){
if( strstr( $s[#j], "\n" + $tmp ) != -1 )break;
#j = #j + 1;
}
if( #j > #i){
if( strlen( $s[#i] + $tmp ) > 8000 ){
#i = #i + 1;
$s[#i] = "\n";
}
$s[#i] = $s[#i] + $tmp;
moveto selendx, selendy;
}
else{
selectline;
delete;
golinetop2;
}
}
if( !#reg_search ){
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",#reg_search;
envchanged;
closereg;
}
//<- ここまで
あと先のマクロは重複 URL のチェックが甘かったので、「URL の取り出
し」部分だけ末尾に書き直しました。 ~^^^^^^^^^^^^
^^^^^^^^^^^^
最後に、これ以上のマクロの話題になるので、このマクロへの要望/質問は、
http://www.maruo.co.jp/hidesoft/4/ で新たなスレッドを立ててください。
//URL の取り出し
disabledraw;
setsearch "http://[!-&(-9;-~]+\.html?", 16;//←相当適当な判定
#i = 0;
$s[0] = "\n";
gofiletop;
while ( 1 ){
finddown;
if( !result ) break;
$tmp = gettext( seltopx, seltopy, selendx, selendy ) + "\n";
#j = 0;
while( #j <= #i ){
if( strstr( $s[#j], "\n" + $tmp ) != -1 )break;
#j = #j + 1;
}
if( #j > #i){
if( strlen( $s[#i] + $tmp ) > 8000 ){
#i = #i + 1;
$s[#i] = "\n";
}
$s[#i] = $s[#i] + $tmp;
}
moveto selendx, selendy;
}
|
|