◀一般トップへ
  • 2686 逆転する置き換え
    • 2687 もとい、置換です。
    • 2690 は゛く゛っぽい
  • [2686] 逆転する置き換え J 2003年01月31日 09:59

    よくプログラムのコードを書いていると、
    代入演算子の左辺と右辺をひっくり返したり、
    比較演算子の左辺と右辺をひっくり返したりする場面
    がよくあります。このような操作をマクロなどで自動化
    することは可能でしょうか?
    • [2687] もとい、置換です。 J 2003年01月31日 10:02

      ああっ、また間違えてしまった。(>_<)
    • [2690] は゛く゛っぽい すい 2003年02月01日 21:52

      >よくプログラムのコードを書いていると、
      >代入演算子の左辺と右辺をひっくり返したり、
      >比較演算子の左辺と右辺をひっくり返したりする場面
      >がよくあります。
      あたしゃそんな事、滅多に無いんですけど。(^^;

      やってみました。
      本当なら、処理範囲を範囲選択してから選択範囲内に対する正規表現の置換
      ・置換前:(\s*)([^!<>=]+?)(\s*[!<>=]+\s*)([^\r]+)
      ・置換後:$1$4$3$2
      一発で出来るはずなのですが、なぜか出来ません。

      行末まで範囲選択してから実行するときちんと動作しますが、
      行末より1文字でも手前までしか選択していないと動作しません。
      [~] が選択範囲だとすると
        if([ *c < 'a' ])
      という場合だと動作せず、
        if([ *c < 'a' ]
        )
      なら動作します。
      選択されている文字列内容が同じでも、選択範囲が行末まで達しているか
      いないかで動作結果が異なるっていうのはどう考えてもおかしいかと。
      動作速度が遅いパソコン上で動作させると、「プロセス...」という
      ダイアログがほんの一瞬だけ出るっぽいという事が分かったのですが、
      とても人の目でメッセージを読める時間ではなく。
      もちろん動作速度の速いパソコンだとダイアログの存在にすら
      気付けないっす。

      というわけで、正規表現置換による処理をあきらめ、
      PPA で一生懸命にやってみました。
      こんなんで良いのかな?
      http://www.egroups.co.jp/files/sakura-editor/User/MACRO/
      invcmp_20030201_21.cab
      正規表現使えぬと ただひたすらに めんどくさい。