!resultを教えてNo.03423
なむnomoto さん 02/10/08 18:07
 
 毎度よく分かっていない なむnomotoです

  教えていただけたら有り難いです。

1.下記の部分の、一番下の
 if (!result) { message "検索語が見つかりませんでした。";
      goto Label; }
  が効きません。検索結果が無くても次のルーチンに飛んでしまいます。
  どうすれば良いのでしょうか?
2.また、
     if(result == 0 ) quit;
     if($search == ""){ message "検索語がありません。";
      goto Label; }
 では、if(result == 0 ) quit;が死んでいるようです。これは不要でしょうか?
3.また、自分で書いておいて分からないのですが(^^;)
    if(result == -1 ) endmacro;
   この、-1 というのは何を意味するのでしょうか?

 −−−−−−−−−−−−−−−−−−−
   else if(#m == 2) {
if(selecting) $ds = gettext(seltopx, y, selendx, y);
if(!imestate) imeswitch;
    $search = input("検索語 ・・・・ app検索。正規表現・曖昧検索OK。", $ds);
     if(result == 0 ) quit;
     if($search == ""){ message "検索語がありません。";
      goto Label; }
    grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;
    if(result == -1 ) endmacro;
    if (!result) { message "検索語が見つかりませんでした。";
      goto Label; }
 −−−−−−−−−−−−−−−−−−−−

[ ]
RE:03423 !resultを教えてNo.03424
きいろいまふらあ さん 02/10/08 22:39
 
検証等は手元の環境(WinXP+秀丸3.17)で行った結果です。

> if (!result) { message "検索語が見つかりませんでした。";
>      goto Label; }
>  が効きません。検索結果が無くても次のルーチンに飛んでしまいます。
>  どうすれば良いのでしょうか?

「検索語が見つかりませんでした。」のダイアログは表示されるのですか?

表示されないのなら、resultが0でないってことになりますね。
その場合、最後の4行を

    grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;
    #myresult = result;
    if(#myresult == -1 ) endmacro;
    if(! #myresult) { message "検索語が見つかりませんでした。";
      goto Label; }

としたらうまくいきますか?

ちなみに手元で

    grep "hoge", "." ,"" ,subdir ,regular ,fuzzy ,icon;
    if(result == -1 ){message "中断されました"; endmacro;}
    if (!result)message "検索語が見つかりませんでした。";

というマクロを走らせると、中断したときは「中断されました」というメッセー
ジが、一つもヒットしなかったときは「検索語が見つかりませんでした。」とい
うメッセージが表示されました。なので、この書き方自体に問題があるわけでは
なさそうですね。

「検索語が見つかりませんでした。」のダイアログが表示されるのに、次のルー
チンに飛んで(飛んで?)しまうのなら、マクロの構造がそうなっているのでし
ょう。

>2.また、
>     if(result == 0 ) quit;
>     if($search == ""){ message "検索語がありません。";
>      goto Label; }
> では、if(result == 0 ) quit;が死んでいるようです。これは不要でしょうか?

「死んでいる」というのはどういう状態を表現されているのですか?
何をさせたくて入れているコードなのですか?
目的が分からなければ(他者でなくとも)必要か不要か判断できないのでは?

あてずっぽですけど、inputがキャンセルされたかをチェックしたいのでは?
手元ではそのように動いていますけど、なむnomotoさんのところではどうなって
しまうのですか?

>3.また、自分で書いておいて分からないのですが(^^;)

すごい法力をお持ちで。

>    if(result == -1 ) endmacro;
>   この、-1 というのは何を意味するのでしょうか?

このresultはコードから推測するとgrepの結果コードですよね?
だとすれば、マクロヘルプの「grep,grepdialog,localgrep文」の頁にばっちり
そのまんまの説明がありますね。

[ ]
RE:03424 !resultを教えてNo.03425
なむnomoto さん 02/10/09 16:38
 
  救いの「きいろいまふらあ」さん
                  有り難うございます。

>検証等は手元の環境(WinXP+秀丸3.17)で行った結果です。

  私は、Windows98 SE XP +秀丸3.17 でもやってみました。


>「検索語が見つかりませんでした。」のダイアログは表示されるのですか?
>
>表示されないのなら、resultが0でないってことになりますね。
>その場合、最後の4行を
>
>    grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;
>    #myresult = result;
>    if(#myresult == -1 ) endmacro;
>    if(! #myresult) { message "検索語が見つかりませんでした。";
>      goto Label; }
>
>としたらうまくいきますか?

  "検索語が見つかりませんでした。" が出ません。
  resultを変数#myresult に代入しても、出ません。
      変数を##myにしても駄目でした。
  if(result == -1 ){message "中断されました"; endmacro;}
   ## ああ、そうでした == -1 は、中断したときですね。(^o^;)☆\バキッ!
   これも、出ませんでした。testgrep.mac でもやって見ました。
   3機種ともだめ出ませんでした。秀丸は、Ver3.17 です。

//------testgrep.mac
if(selecting) $ds = gettext(seltopx, y, selendx, y);
if(!imestate) imeswitch;
    $search = input("検索語 ・・・・ app検索。正規表現・曖昧検索OK。", $ds);
     if(result == 0 ) quit; //キャンセル
     if($search == ""){ message "検索語がありません。";}
     localgrep $search ,regular ,fuzzy ,icon;
     ##my = result;
    if(##my == -1 )  { message "中断されました。"; endmacro;} // endmacro;
    if(! ##my) { message "検索語が見つかりませんでした。"; }
//------------------

>ちなみに手元で
>
>    grep "hoge", "." ,"" ,subdir ,regular ,fuzzy ,icon;
>    if(result == -1 ){message "中断されました"; endmacro;}
>    if (!result)message "検索語が見つかりませんでした。";
>
>というマクロを走らせると、中断したときは「中断されました」というメッセー
>ジが、一つもヒットしなかったときは「検索語が見つかりませんでした。」とい
>うメッセージが表示されました。なので、この書き方自体に問題があるわけでは
>なさそうですね。

  テストまでして頂いて、m(_ _)m 感謝!
    ますます分からなくなって(+_+)(T_T)
       メッセージが出ないのは、なじぇ?

>「検索語が見つかりませんでした。」のダイアログが表示されるのに、次のルー
>チンに飛んで(飛んで?)しまうのなら、マクロの構造がそうなっているのでし
>ょう。

   メッセージが出ないから、
  どうも、
  if(result == -1 ){message "中断されました"; endmacro;}
  から、無視されているようです。
  localgrep が駄目なんでしょうか。どうすれば調べられますか?

>>2.また、
>>     if(result == 0 ) quit;

>あてずっぽですけど、inputがキャンセルされたかをチェックしたいのでは?
>手元ではそのように動いていますけど、なむnomotoさんのところではどうなって
>しまうのですか?

  当てずっぽうって、きいろいまふらあさんのは、ズバ!と当たってます。
  これは活きておりました(^^;)

>>3.また、自分で書いておいて分からないのですが(^^;)
>
>すごい法力をお持ちで。

  すごく褒めていただいてボク嬉しい (^o^;)☆\バキッ!

>このresultはコードから推測するとgrepの結果コードですよね?
>だとすれば、マクロヘルプの「grep,grepdialog,localgrep文」の頁にばっちり
>そのまんまの説明がありますね。

 ううむ、これもズバ!っと大当たり。---->我ながら情けない(T_T)


[ ]
RE:03425 !resultを教えてNo.03426
なむnomoto さん 02/10/09 16:59
 
  救いの「きいろいまふらあ」さん
                  有り難うございます。
 追加コメントです

○    grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;

  これgrepでは、ちゃんと「検索語がありません」がでます。

×     localgrep $search ,regular ,fuzzy ,icon;

    このlocalgrepでは、resultを返していないみたいです。
  バグなの? [書き方]がマズイのかなぁ・・・


[ ]
RE:03426 !resultを教えてNo.03427
ひろ さん 02/10/09 18:00
 
 なむnomoto さん今日は、ひろです。
> ○    grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;
>
>   これgrepでは、ちゃんと「検索語がありません」がでます。
 http://www.maruo.co.jp/hidesoft/4/m021009.html#3425
 Message-Id: <xxxxxxxxxxxxxx@maruo.co.jp>
には
>   "検索語が見つかりませんでした。" が出ません。
と有ります。結局どっち? 手元では、
//-------------------------------------------------------------------
if(selecting) $ds = gettext(seltopx, y, selendx, y);
if(!imestate) imeswitch;
$search = input("検索語 ・・・・ app検索。正規表現・曖昧検索OK。", $ds);
if( result == 0 ) quit; //キャンセル
if( $search == "")message "検索語がありません。";
else{
  grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;
  if( result == -1 )message "中断されました。";
  else if( !result )message "検索語が見つかりませんでした。";
}
//-------------------------------------------------------------------
が真面に動作します。お手元で上手くどうせず、且つ最短のマクロをアップ
して頂けないと、そちらで何が問題なのかサッパリ解りません。

> ×     localgrep $search ,regular ,fuzzy ,icon;
については、今のところ仕様のようです。

[ ]
RE:03427 !resultを教えてNo.03428
なむnomoto さん 02/10/09 18:25
 
   ひろさんどうも
              なむnomotoです

>> ○    grep $search ,"." ,"" ,subdir ,regular ,fuzzy ,icon;
>>
>>   これgrepでは、ちゃんと「検索語がありません」がでます。

   わ!。  "検索語が見つかりませんでした。" の間違いです。

>が真面に動作します。お手元で上手くどうせず、且つ最短のマクロをアップ
>して頂けないと、そちらで何が問題なのかサッパリ解りません。

   grep では巧く行きます。
  localgrep の !result の 0 が返されない見たいです。
          
>> ×     localgrep $search ,regular ,fuzzy ,icon;
>については、今のところ仕様のようです。

  ええと、仕様というのは、localgrep の !result は あり得ないって事は
  ないけど、result は常に 1 で良いという事ですか?
  検索件数がresultに入るのは、grepだけで、localgrep では、
  検索ヒットがあっても無くても、1 だけが返されているようです。
  
insert "検索件数 :" + str(#my) + " 行";

  なんだか変な感じです。・・・ますます謎(?_?)



[ ]
RE:03428 !resultを教えてNo.03429
ひろ さん 02/10/09 18:50
 
 なむnomoto さん今日は、ひろです。
> ええと、仕様というのは、localgrep の !result は あり得ないって事は
> ないけど、result は常に 1 で良いという事ですか?
 何だかおかしな表現がありますが (←直前の投稿で誤字のまま投稿した奴
が、何を偉そうに)、result==1 という点はその通りで、良い悪いの問題では
なく、そう決められているのだと思います。ですから今のところ、
> insert "検索件数 :" + str(#my) + " 行";
この使い方がナンセンスということになります。もし過去ログをお持ちの場
合は、2 番会議室の 948, 956 番をお読みください。

[ ]
RE:03428 !resultを教えてNo.03430
ひろ さん 02/10/09 18:53
 
 なむnomoto さん今日は、ひろです。追加です。
> localgrep では、
>   検索ヒットがあっても無くても、1 だけが返されているようです。
 (local)grep で検索にヒットした個数を知りたければ、linecount2 - 1 で解
ります。

[ ]
RE:03429 !resultを教えてNo.03431
なむnomoto さん 02/10/09 19:44
 
 ひろさん、どうも なむnomotoです

> 何だかおかしな表現がありますが (←直前の投稿で誤字のまま投稿した奴
>が、何を偉そうに)、

 (+_+)(^^;)済みません。m(_ _)m

>result==1 という点はその通りで、良い悪いの問題では
>なく、そう決められているのだと思います。ですから今のところ、
>> insert "検索件数 :" + str(#my) + " 行";
>この使い方がナンセンスということになります。もし過去ログをお持ちの場
>合は、2 番会議室の 948, 956 番をお読みください。

  ううむ、またもや叱られそう。説明が悪うございました。
        #my = result;
  として、localgrep が result で何を返したか覗こうとしたんです。
  0 がなくて、1 以上もなくて、1 だけみたい。

 検索行数を表示する場合は、ファイルトップに
insert "【検索結果】  " + date + " " + leftstr(time, 5)\n";
insert "検索語 :「" +  $search  + "」\n";
 などで入れると、

     #count = linecount2 -1;
  insert "検索件数 :" + str(#count) + " 行";

  として見ましたら出ました。-1じゃなくて、insert挿入行数も - で差し引かない
とイケナイのですね。

   localgrep で、if(!result){messege "検索語がありませんでした";} は
  使えないのですね。

 それで、
   grepコマンド で、開いたこのファイルのみをgrepする書き方があれば、
   教えて欲しいのですけど。宜しくお願いします。
       (どこかを誤記してなければ良いのだけど・・・)
    



[ ]
RE:03431 !resultを教えてNo.03432
きいろいまふらあ さん 02/10/10 02:31
 
いつの間にかlocalgrepって話になっててびっくりです。
最初からこれをやりたかったんですか?
なんかけむにまかれた気分です。

> それで、
>   grepコマンド で、開いたこのファイルのみをgrepする書き方があれば、
>   教えて欲しいのですけど。宜しくお願いします。

ヘルプでfilename, basename, directoryの項を見てみて下さい。
ただし、開いたファイルを編集してたら、先に上書き保存しておかないと、おや
りになりたいこと(私はまだ理解しているという自信が持てません)は実現でき
ないかもしれません。よく考えてください。

で、結局、localgrepが期待したresultを返してくれない、ってことを除いては
疑問やらなんやらは全て解決したってことでよいのですよね?

(以下余談)
ひろさんのtypo(+変換ミス?)は日常茶飯事なのでもう慣れてしまいました。
#人のこた言えませんが。:-p

[ ]
RE:03432 !resultを教えてNo.03434
なむnomoto さん 02/10/10 10:13
 
  きいろいまふらあ さん
    有り難うございます。
                     なむnomotoです

>いつの間にかlocalgrepって話になっててびっくりです。
>最初からこれをやりたかったんですか?
>なんかけむにまかれた気分です。

 済みませんm(_ _)m
 一番最初に、!result を尋ねたときのマクロが、grepになってて、
 localgrep じゃなかった事から非常に迷惑かけてしまった事に
 なるのです。---> 誰のせいじゃ。--->グス、私です(+_+)
         偉そうに云うな---->済みません。m(_ _)m
                   !result == 0 0 0 0
//-----------------------test.mac訂正版
if(selecting) $ds = gettext(seltopx, y, selendx, y);
if(!imestate) imeswitch;
    $search = input("検索語 ・・・・ app検索。正規表現・曖昧検索OK。\n"
                    + "使用履歴は Ctrl + F8 ", $ds);
     if(result == 0 ) quit; //キャンセル
     if($search == ""){ message "検索語がありません。"; goto Label; }
     localgrep $search ,regular ,fuzzy ,icon;
           ##my = result;
    if( ##my == -1 ) { message "中断されました。"; endmacro;}
    if( !##my ) { message "検索語が見つかりませんでした。"; goto Label; } //
なぜか不調
   if(##my > 0 ) insert "\n   ***** タグジャンプとバックタグジャンプができま
す *****\n";
gofiletop;
 insert "【検索結果】  " + date + " " + leftstr(time, 5)
        + "   Ggrep.mac     by nomoto.K \n";
 insert "検索語 :「" +  $search  + "」\n";
 insert "検索件数 :" + str(##my) + " 行\n";
//---------------------------------------------

>ヘルプでfilename, basename, directoryの項を見てみて下さい。
>ただし、開いたファイルを編集してたら、先に上書き保存しておかないと、おや
>りになりたいこと(私はまだ理解しているという自信が持てません)は実現でき
>ないかもしれません。よく考えてください。

 とりあえずlocalgrep で結果が出ればいいのです。
  (複雑なことは私には書けそうにないのです)
 localgrep では、「検索語が見つかりませんでした」は表示しにくいですね。
 それで、検索語がなくても、goto Label で戻らず、次の行程に飛んでゆくんですが、
 これを防止する方法が分かりません。localgrep で駄目なら grep でもいいのだ
けど、「現在のファイル」のみgrepする書き方が分からないのです。localgrep が
0 や -1 を返してくれれば良いんですが。

>で、結局、localgrepが期待したresultを返してくれない、ってことを除いては
>疑問やらなんやらは全て解決したってことでよいのですよね?

 あ、そうです。きいろいまふらあさんは、頭がいいですね。
 私が言わねばいけないことを、ズバ!と云ってくださいました。
   違う違う、(また間違えそ)(^^;)
 任意のファイルを開いて、このマクロを実行してlocalgrepして、結果を
得て、
 !result の場合は、別語句を検索するために最初に戻る。
 検索語があれば、その結果を示す数行を挿入して、なおかつその検索語を、カラー
強調するマクロなんです。
 カラー強調のルーチンは、山紫水明さんWordColor.macマクロからのパクリです。
                 (山紫水明さんごめんなさい)。
 ンで、localgrep がだめなら、grepで、「現在のファイル」のみgrepする書き方が
分かれば、なんとかなるかなという訳です。
 これを応用すれば、特定のファイルを頻繁に検索できるアイコンができますので。

      


[ ]
RE:03432 !resultを教えてNo.03435
なむnomoto さん 02/10/10 10:58
 
                  なむnomotoです
   ええと、

     grep $search ,filename,"",regular ,fuzzy ,icon;

  で、localgrep と同じになるってことで良いですか?
  なんだか、期待通りのような感じです。

[ ]
RE:03435 !resultを教えてNo.03436
なむnomoto さん 02/10/10 11:48
 
                  なむnomotoです
   ええと、訂正 (+_+)

>     grep $search ,filename,"",regular ,fuzzy ,icon;

   やっぱり巧く行きません。

 grep $search ,basename2 ,directory2 ,regular ,fuzzy ,icon;
   でも駄目だし、どうすりゃぁ良いんだろ。トホ・・。

[ ]
RE:03436 localgrep 代わりにgrepNo.03437
なむnomoto さん 02/10/10 13:10
 
                  なむnomotoです
   ええと、
                        $file = basename2;
                        $dir  = directory2;
//     localgrep $search ,regular ,fuzzy ,icon;
     grep $search ,$file ,$dir ,regular ,fuzzy ,icon;

 これで良いのでしょうか。(^^;)

[ ]
RE:03436 !resultを教えてNo.03438
ひろ さん 02/10/10 13:30
 
 秀丸担当さん、なむnomoto さん今日は、ひろです。
>  grep $search ,basename2 ,directory2 ,regular ,fuzzy ,icon;
 こちらについては、
$name = basename;
grep "grep" , $name , ".", regular ,fuzzy ,icon;
//                    ^^^ここは directory でも可
とすると動作しますが、ひょっとするとバグでは?→秀丸担当さん

 あとこれは別として、
>      #count = linecount2 -1;
>   insert "検索件数 :" + str(#count) + " 行";
>
>   として見ましたら出ました。-1じゃなくて、insert挿入行数も - で差し引かない
> とイケナイのですね。
これでは駄目なの? grep では保存されていないと、結果が一致しない可能性が
ありますよ。

[ ]
RE:03438 !resultを教えてNo.03439
なむnomoto さん 02/10/10 17:33
 
  ひろさん、どうも
             なむnomotoです

>>  grep $search ,basename2 ,directory2 ,regular ,fuzzy ,icon;
> こちらについては、
>$name = basename;
>grep "grep" , $name , ".", regular ,fuzzy ,icon;
>//                    ^^^ここは directory でも可
>とすると動作しますが、ひょっとするとバグでは?→秀丸担当さん

  へぇ そうなんですか。
   localgrep  のresultについては、ヘルプでも何か説明しておいて
  欲しいように思います(素人の希望に過ぎないですが)。
  「localgrep のresultは、常に 1 しか返しません」とか(^^;)

> あとこれは別として、
>>      #count = linecount2 -1;
>>   insert "検索件数 :" + str(#count) + " 行";
>>
>>   として見ましたら出ました。-1じゃなくて、insert挿入行数も - で差し引かない
>> とイケナイのですね。
>これでは駄目なの? grep では保存されていないと、結果が一致しない可能性が
>ありますよ。

  駄目という積もりは無いです。linecount2 -1 で、数え直したほうが
  良いらしい事は分かりました。が、どういう場合に一致しないのでしょう。

  grep の ヘルプに、
//  grep 検索文字列,検索するファイル,カレントフォルダ [,word]
// [,casesense][,regular][,fuzzy][,subdir][,icon][,filelist]
//
// カレントフォルダとして現在のフォルダを指定する場合は、"."か、ま
// たは""を指定してください。resultには置換した個数が入ります。途中
// で中断された場合はresultは-1になります。

  とあるので、「置換した個数」というのは、検索ヒットした個数かと
 思ったのですが、検索した行数見たいです。(1行に2個以上あっても
 1個と見てる。)
   ##my = result
               ::::
     insert "検索件数 :" + str(##my) + " 行";

   だと便利かと思ったのですが、linecount2 -1 が正確な行数が分かる
  のは良いとして、何個ヒットしたかが分かると良いのですけど、
  検索個数を知るコマンドはないのですか?。


 




[ ]
RE:03439 !resultを教えてNo.03441
ひろ さん 02/10/10 19:35
 
 なむnomoto さん今日は、ひろです。
>   駄目という積もりは無いです。linecount2 -1 で、数え直したほうが
>   良いらしい事は分かりました。が、どういう場合に一致しないのでしょう。
 保存されていないときです。

[ ]
RE:03439 !resultを教えてNo.03444
きいろいまふらあ さん 02/10/11 00:05
 
>  駄目という積もりは無いです。linecount2 -1 で、数え直したほうが
>  良いらしい事は分かりました。が、どういう場合に一致しないのでしょう。

localgrepが現在のその秀丸ウィンドウの内容を対象とするのに対し、grepは保
存されているファイルの中身を対象とします。なので、それらが同一でないとき
は両者の結果も(一般論として)一致しませんよね。

#って先に書いたつもりなんですけど、わかりにくかったですかね?

>  のは良いとして、何個ヒットしたかが分かると良いのですけど、
>  検索個数を知るコマンドはないのですか?。

ありません。

replaceallfast $search, "\\0", regular ,fuzzy ,icon;
message str(result);

なんていうのでごまかす手もありますが。
#検索文字列中で「\f」を使ってたらだめですけど。

[ ]
RE:03444 !resultを教えてNo.03446
山紫水明 さん 02/10/11 10:58
 
 きいろいまふらあさん,こんにちは。

》replaceallfast $search, "\\0", regular ,fuzzy ,icon;

》#検索文字列中で「\f」を使ってたらだめですけど。

 単純に,

replaceallfast $search, $search;

というのでは具合悪いですか?

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

[ ]
RE:03444 !resultを教えてNo.03449
なむnomoto さん 02/10/11 11:42
 
  きいろいまふらあ さん
                 なむnomotoです

>>  駄目という積もりは無いです。linecount2 -1 で、数え直したほうが
>>  良いらしい事は分かりました。が、どういう場合に一致しないのでしょう。
>
>localgrepが現在のその秀丸ウィンドウの内容を対象とするのに対し、grepは保
>存されているファイルの中身を対象とします。なので、それらが同一でないとき
>は両者の結果も(一般論として)一致しませんよね。
>
>#って先に書いたつもりなんですけど、わかりにくかったですかね?

 分かりにくい書き方じゃなくて、私がワカラン頭だからだと思います。
   (なんのこっちゃ(^^;))
 私のやろうとしてることに限定して話しますと、既に保存されている
 ファイルを開いて、
「このファイルのみ」と「フォルダ内全ファイル」をgrepを使い分けるマクロを作っ
たので、
 localgrepの検索語がない場合にmessageが出ないので変?と尋ねたら、localgrep
では、
 resultが 1 しか返さない、事が分かってgrepにしました。
 両方ともgrepと同じにresultが出るはずなので、多数のファイルをgrepした場合で
も、
 「このファイルのみ」grepでもresult個数は同じ、だからstr(result)で良いかと
思ったんです。
 linecount2 -1 でなくても良いぞ? とまあ、こんな程度です。
 
>>  のは良いとして、何個ヒットしたかが分かると良いのですけど、
>>  検索個数を知るコマンドはないのですか?。
>
>ありません。

  やっぱし。以前にこの話題でツリーが続いたことがありましたね。
  置換はやめようとか、他の方法は?とか。……結論を私が覚えてるわけは無いで
す(+_+)

>replaceallfast $search, "\\0", regular ,fuzzy ,icon;
>message str(result);
>
>なんていうのでごまかす手もありますが。
>#検索文字列中で「\f」を使ってたらだめですけど。

 エラーになってしまいました。
 replaceallfast $search, $search, regular ,fuzzy ,icon;
  じゃ、だめなんですか?キーワードが間違ってるんだそうです。(^^;)

[ ]
RE:03446 !resultを教えてNo.03452
なむnomoto さん 02/10/11 12:21
 
  山紫水明さん
              お久しぶりです。 なむnomoto
              お世話様です。
> 単純に,
>
>replaceallfast $search, $search;
>
>というのでは具合悪いですか?

  これで動きました。しかし問題が2つ。
replaceallfast $search, $search;
             ##kosu = result;
 insert "検索件数 :" + str(##kosu) + " 個。";
  ちゃんと、個数が出ました。ところがですね。

 1.新漢字で検索して旧漢字ヒットの場合(またはその逆)でも、
   大丈夫ですか? fuzzy 付けると叱られたりします。
 2.replaceallfast で個数を出すと、この位置場所が悪いらしく
   カラー強調ができません。.hilight にseveされないみたいです。
   ** 毎日毎日、律儀に動いているzengogyo.macの恩恵に浴してます。
         これが、検索件数=個数になると良いなあという、欲望を抱いて
     います。しかし、前後行にあると、これでは正確にヒット個数が
     でないので、諦めたりしています。(^^;)

[ ]
RE:03452 !resultを教えてNo.03457
山紫水明 さん 02/10/11 21:21
 
 なむnomotoさん,こんばんは。

》 1.新漢字で検索して旧漢字ヒットの場合(またはその逆)でも、
》   大丈夫ですか? fuzzy 付けると叱られたりします。

 そういう場合があるなら,次のようにしたらどうでしょう。

//-----------------------------------------
gofiletop;
while( 1 ) {
    searchdown2 $search, regular, fuzzy;
    if( result ) #n = #n + 1;
    else break;
}
message str(#n);
//-----------------------------------------

》         これが、検索件数=個数になると良いなあという、欲望を抱いて
》     います。しかし、前後行にあると、これでは正確にヒット個数が
》     でないので、諦めたりしています。(^^;)

 前後行マクロについてのご要望であれば,どういうデータの場合に検索件数=個
数にならないかをお示しの上,マクロ作者のための会議室(秀丸エディタ関連)
か,FWINALの方にお願いします。

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

[ ]
RE:03446 !resultを教えてNo.03458
きいろいまふらあ さん 02/10/11 23:53
 
>》replaceallfast $search, "\\0", regular ,fuzzy ,icon;

> 単純に,
>
>replaceallfast $search, $search;
>
>というのでは具合悪いですか?

正規表現だと……具合悪そうですが。

[ ]
RE:03449 !resultを教えてNo.03461
きいろいまふらあ さん 02/10/12 00:58
 
>>localgrepが現在のその秀丸ウィンドウの内容を対象とするのに対し、grepは保
>>存されているファイルの中身を対象とします。なので、それらが同一でないとき
>>は両者の結果も(一般論として)一致しませんよね。
>>
>>#って先に書いたつもりなんですけど、わかりにくかったですかね?

> 私のやろうとしてることに限定して話しますと、既に保存されている
> ファイルを開いて、
>「このファイルのみ」と「フォルダ内全ファイル」をgrepを使い分けるマクロを作っ
>たので、

ファイルを開いて一切編集を行わないならばgrepもlocalgrepも一致するはずで
す。開いた後に内容に手を加え、上書き保存してない状態では一致しないことが
ありえます。…と書いたらわかってもらえるんでしょうか?

>  やっぱし。以前にこの話題でツリーが続いたことがありましたね。
>  置換はやめようとか、他の方法は?とか。……結論を私が覚えてるわけは無いで
>す(+_+)

それでは困ります。以前に話題が出たことを憶えているなら調べてください。

>>replaceallfast $search, "\\0", regular ,fuzzy ,icon;
>>message str(result);

> エラーになってしまいました。

replaceallfast $search, "\\0", regular ,fuzzy;

ですね。失礼しました。

> replaceallfast $search, $search, regular ,fuzzy ,icon;
>  じゃ、だめなんですか?キーワードが間違ってるんだそうです。(^^;)

$search を [あ-ん] とでもして試してみてください。
だめなことがわかると思います(個数はわかりますけど)。
正規表現やあいまい検索を使わなければ大丈夫かもしれませんが。

resultの数だけundoしてやればなんでもいいですけど。

replaceallfast $search, "a", regular ,fuzzy;
#r = result;
message str(#r);
while(#r > 0){
  undo;
  #r = #r - 1;
}

とかね。

[ ]
RE:03461 !resultを教えてNo.03462
なむnomoto さん 02/10/12 15:18
 
きいろきまふらあさん
               なむnomotoです

>ファイルを開いて一切編集を行わないならばgrepもlocalgrepも一致するはずで
>す。開いた後に内容に手を加え、上書き保存してない状態では一致しないことが
>ありえます。…と書いたらわかってもらえるんでしょうか?

 分かり易い説明で、私の頭の悪さを再認識してしまいました。(T_T)
 あ〜、じゃあ、str(result) でも良いわけだ(^^;)良かった。


>それでは困ります。以前に話題が出たことを憶えているなら調べてください。

  済みません。過去ログ保存していないので、サッと諦めてしまいました。

>>>replaceallfast $search, "\\0", regular ,fuzzy ,icon;
>>>message str(result);
>
>> エラーになってしまいました。
>
>replaceallfast $search, "\\0", regular ,fuzzy;
>
>ですね。失礼しました。

 icon が犯人だったんですか。(う〜ん何で?と聞くとまた分からなくなるので、そ
っとして置きます。)付けなきゃ良いんだから。
 iconのこういう場合のヘルプ説明が、ちょっと無いのですよね。


正規表現やあいまい検索を使わなければ大丈夫かもしれませんが。
>
>resultの数だけundoしてやればなんでもいいですけど。
>
>replaceallfast $search, "a", regular ,fuzzy;
>#r = result;
>message str(#r);
>while(#r > 0){
>  undo;
>  #r = #r - 1;
>}
>
>とかね。
     え?、undo; すれば、・・・おおお出た! 
     insert 書き込みが変です。 str(#r)+"個";ではいけないの?
   山紫水明さんのルーチンをやってみます。




[ ]
RE:03457 個数正確!No.03463
なむnomoto さん 02/10/12 16:05
 
 山紫水明さん
                なむnomotoです


> そういう場合があるなら,次のようにしたらどうでしょう。

 うを〜! ぴったし! 強調もバンザイ!巧く行きました。
  searchdown2 ですか、ふうむ。
  **** ありゃ?漢字のファイル名にもヒットがあって、計算していますけど、
    ま、いいか(^^;) 私のテスト語が変だから。
 お陰様で、これで、私の愚作grepマクロが使えそうです。ありがとうございました。

 語句数計算マクロで、独立させます。
 あれ? ひょっとしたらWordColor.mac に仕込んだら、強調語句数も表示できます
ね。
 
> 前後行マクロについてのご要望であれば,どういうデータの場合に検索件数=個
>数にならないかをお示しの上,マクロ作者のための会議室(秀丸エディタ関連)
>か,FWINALの方にお願いします。

  では、体勢を整え直して(^^;)、新ツリーでお願いすることにします。
  

[ ]
RE:03462 !resultを教えてNo.03464
きいろいまふらあ さん 02/10/12 16:05
 
> icon が犯人だったんですか。(う〜ん何で?と聞くとまた分からなくなるので、そ
>っとして置きます。)付けなきゃ良いんだから。
> iconのこういう場合のヘルプ説明が、ちょっと無いのですよね。

もともとreplaceallfastに「icon」なんてオプションは存在しないです。
マクロヘルプに説明がなくて当たり前です。
先に私が適当に書いたのが悪いです。すみません。

あと何かうまくいってないことがおありのようですが、ちょっと静観させていた
だきます。

[ ]
RE:03461 !resultを教えてNo.03465
なむnomoto さん 02/10/12 16:23
 
  きいろいまふらあさん
                なむnomotoです

>resultの数だけundoしてやればなんでもいいですけど。
>
>replaceallfast $search, "a", regular ,fuzzy;
>#r = result;
>message str(#r);
>while(#r > 0){
>  undo;
>  #r = #r - 1;
>}

  replaceallfast $search ,$search ,regular ,fuzzy;
     #r = result;
     message str(#r);
       while(#r > 0){
                undo;
                #r = #r - 1;
                    }
   insert str(#r);
 
  message はでますけど、
 insert str(#r);
  が、0 です。insertが 0 なのは、0まで - したからですね。
 

[ ]
RE:03458 !resultを教えてNo.03467
山紫水明 さん 02/10/12 18:01
 
 きいろいまふらあさん,こんにちは。

》正規表現だと……具合悪そうですが。

 ちょっと取り違えていたようですみません。m(__)m
 "\f"という文字列自体が検索の対象だった場合のことを念頭に置いてい
ました。

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

[ ]