◀一般トップへ
  • 4031 機能追加要望
    • 4033 Re:機能追加要望
      • 4038 Re2:機能追加要望
        • 4053 Re3:機能追加要望
          • 4054 Re4:機能追加要望
            • 4055 Re5:機能追加要望
              • 4056 Re6:機能追加要望
              • 4057 Re6:機能追加要望
  • [4031] 機能追加要望 sakura大ファン 2004年09月07日 15:09

    おはつです。
    私が世界で1番使いやすいと思っているsakuraエディタに
    「追加して頂けたらなぁ~」と思う機能が1つあります。

    それは
     複数ファイル同時置換機能です。
    私がhelpを参照した所、このような機能が見当たらなかったのです。
    もしあったらいいな~と思っているだけですので軽くご検討お願いします。
    • [4033] Re:機能追加要望 ひでと 2004年09月09日 13:45

      私も欲し~~っす!ぜひ!
      • [4038] Re2:機能追加要望 tacopon 2004年09月11日 17:31

        http://groups.yahoo.co.jp/group/sakura-editor/files/User/MACRO/
        に
        grepr_20030201_20.cab
        というのがありますが、どうでしょうか?
        • [4053] Re3:機能追加要望 くぇrt 2004年09月25日 14:50

          ▼ tacoponさん
          > http://groups.yahoo.co.jp/group/sakura-editor/files/User/MACRO/
          > に
          > grepr_20030201_20.cab
          > というのがありますが、どうでしょうか?

          試してみました。あまり使えないっぽいです。
          正規表現が加わると処理要求ダイアログはたくさん出るのに、
          全く中身が変わっていませんでした。タイムスタンプは変わってました。
          いろいろ試しましたが、動きませんでした。
          ひょっとして検索結果の書式とか仕様が変わったからでしょうか?
          • [4054] Re4:機能追加要望 すい 2004年09月26日 07:11

            >試してみました。あまり使えないっぽいです。
            >正規表現が加わると処理要求ダイアログはたくさん出るのに、
            >全く中身が変わっていませんでした。タイムスタンプは変わってました。
            >いろいろ試しましたが、動きませんでした。
            >ひょっとして検索結果の書式とか仕様が変わったからでしょうか?

            はい。
            Grep の検索結果の書式が様変わりしているので、もう使い物にならないかと。
            昔は検索条件が全て出力されていたのですが、今はどういう条件で Grep したのか
            さっぱりわからなくなってしまってますからマクロなどでの対処は不可能です。

            昔と同じ書式になるように Grep 結果に手作業で手を加えればそれなりに動くかも。
            (正規表現)
            とか
            (単語単位で探す)
            とか
            (英大文字小文字を区別する)
            とかの行を必要に応じて手で追記してみる。

            ただ、それ以前にマクロ側にも1個所、既知の問題があるんですけど。
            検索文字列中に \ が含まれている場合、Grep 結果には \ → \\ に変換して
            出力されているので、マクロ側では \\ → \ 変換をやらなくてはならないのですが
            それをやっていない、という。。。

            最大の問題点はそのマクロ作成者 σ(^^;) がそのマクロ使っていないから、
            動こうが動くまいがどうでも良いや~~って姿勢でほったらかしにされている点かな。(をぃ
            • [4055] Re5:機能追加要望 もか 2004年09月26日 13:25

              >昔と同じ書式になるように Grep 結果に手作業で手を加えればそれなりに動くかも。
              >(正規表現)
              >とか
              (以下略)

              ▼CEditView.cpp rev 1.95 / 6375,6401行目
              > if( nWork < 0 ){ // 2003.06.10 Moca ファイル検索の場合は表示しない
              上記仕様変更は私が混入させたバグです。不等号の向きが逆 m(__)m
              1.3.10.1からバグが有効です。

              >ただ、それ以前にマクロ側にも1個所、既知の問題があるんですけど。
              >検索文字列中に \ が含まれている場合、Grep 結果には \ → \\ に変換して
              >出力されているので、マクロ側では \\ → \ 変換をやらなくてはならないのですが
              >それをやっていない、という。。。
              表示設定によっては、 ' → \' か ' → '' のどちらかに変わるものの、それを調べる術が無かったりするというおまけ付で。
              • [4056] Re6:機能追加要望 くぇrt 2004年09月27日 01:56

                なるほど、やっぱりそうでしたか。
                このマクロがサクラエディタとして完全対応してくれら便利だと思うのですが・・・。
              • [4057] Re6:機能追加要望 すい 2004年09月27日 05:03

                >表示設定によっては、 ' → \' か ' → '' のどちらかに変わるものの、それを調べる術が無かったりするというおまけ付で。
                あらま。これは知りませんでした。
                タイプ別設定一覧 → 「基本」の設定次第で変わってしまうんですね。
                う~~む。

                ひとまず \\ → \ なら簡単に追加できるんですが
                134行目以降
                -----
                if ( bef = '' ) then // 検索文字列が見つからなかった場合 - エラー終了
                begin // {
                S_MoveHistPrev(0); // 移動履歴: 前へ - S_GoFileTop
                mess := '';
                mess := mess + '開かれているファイルが Grep結果ではないようです。' +CRLF;
                mess := mess + '本マクロは Grep結果から実行してください。' +CRLF;
                MessageBox(mess,'エラー終了',0);
                Exit;
                end // }
                ;

                // 検索文字列 bef 中の \\ → \ 変換処理
                str := '';
                repeat
                tp := Pos('\\',bef);
                if(tp <> 0) then
                begin
                str := str + Copy(bef,1,tp-1) + '\'; // \\ の前の部分 + \ 一文字を str 末尾に連結する
                bef := Delete(bef,1,tp+1); // \\ の後ろ部分のみ残す
                // MessageBox( '[' + bef + '][' + str + ']' , '' , 0 );
                end
                ;
                until (tp = 0);
                bef := str + bef;

                // ****************************************
                ********** //
                // 処理対象のファイル名リストを取得する //
                // ****************************************
                ********** //
                -----

                このマクロを作った後で S_GetSelectedString の動作仕様も変わったから
                そこも修正が必要だし。
                88行目以降
                -----
                // ****************************************
                ********** //
                // 置換条件を取得 //
                // ****************************************
                ********** //
                // 置換後文字列(先頭行の内容)を取得する
                S_GoFileTop(0); // ファイルの先頭に移動
                // S_Down_Sel(0); // (選択)カーソル下移動 S_GetSelectedString(0) の仕様変更に伴う変更
                S_GoLineEnd_Sel(0); // (選択)行末に移動(折り返し単位) S_GetSelectedString(0) の仕様変更に伴う変更
                aft := S_GetSelectedString(0); // 選択部分の文字列を取得
                S_CancelMode(0); // 各種モードの取り消し - 文字列選択を解除
                S_Right(0); // カーソル右移動 - 次行の先頭へ移動 S_GetSelectedString(0) の仕様変更に伴う変更
                -----