[不具合] FindInFiles

  1. var sb="char";
    var path=".\\*.txt";
    var flags = 0;
    editor.FindInFiles(sb, path, flags);

    検索中のダイアログが一瞬出ているのが分かります。
    しかし、出力結果のファイルは表示されません。

     |  kinzoku  |  返信
  2. 相対パスだとMery本体のパスから見た相対パスになります。
    絶対パスで指定してやると動くと思います。

     |  Kuro  |  返信
  3. >絶対パスで指定してやると動くと思います。
    動きました。しかし・・・
    Mery の「検索(S)」->「ファイルから検索(I)...」 で、
    実行すると結果は、新規ファイルに出力されます。
    しかし、同じことを、マクロの editor.FindInFiles(sb, path, flags)で実行すると、
    スクリプト実行元のファイルが、出力結果で上書きされてしまいます。

    手動実行で検索できなかったら、新規ファイルだけが残ります。
    Mery は複数の文書を切り替える機構がないから、マクロからの制御は無理かな。

    私的には、優先順位が高くないです。

     |  kinzoku  |  返信
  4. > スクリプト実行元のファイルが、出力結果で上書きされてしまいます。

    そうですね。おっしゃるとおり、今のところマクロ実行中のウィンドウ以外を制御する方法が
    ありませんので、ダメなのは解っていてこういう実装になってます。
    まぁ、マクロからGrepなんてめったに使わんだろ、ということでw

     |  Kuro  |  返信
  5. > > スクリプト実行元のファイルが、出力結果で上書きされてしまいます。

    > そうですね。おっしゃるとおり、今のところマクロ実行中のウィンドウ以外を制御する方法が
    > ありませんので、ダメなのは解っていてこういう実装になってます。

    Editor.NewFile()してからEditor.FindInFiles()すると上書きされずに表示できました。(Build:2.2.6.5031)

     |  toshi  |  返信