◀一般トップへ
  • 4758 文字列の検索
    • 4761 RE: 文字列の検索
      • 4762 Re2: 文字列の検索
        • 4763 Re3: 文字列の検索
  • [4758] 文字列の検索 かて 2005年10月27日 15:39

    検索について少し気になる点があったので報告します。

    ファイル中に「aaaaa」という文字列があり、
    説明のため前から順にa1~a5とします。

    ここで「aa」という文字列で検索をかけた場合、
    ファイルの先頭から"次を検索"で前から順に検索をかけると
      a1-a2
      a3-a4
    の2組にヒットします。
    これをファイルの最後から"前を検索"で逆向きに検索をかけると
      a4-a5
      a3-a4
      a2-a3
      a1-a2
    の4組にヒットしており、少し違和感がありました。
    個人的には、先頭から検索した場合でも4組にヒットするのが自然だと思うのですが、いかがでしょうか。

    因みに、秀丸やK2Editorではどちらから検索した場合でも4組にヒットしました。
    • [4761] RE: 文字列の検索 かろと 2005年10月27日 22:06

      >タイトル: RE: 文字列の検索
      >発言者: かて
      >ここで「aa」という文字列で検索をかけた場合、
      >ファイルの先頭から"次を検索"で前から順に検索をかけると
      >の2組にヒットします。
      >これをファイルの最後から"前を検索"で逆向きに検索をかけると
      >の4組にヒットしており、少し違和感がありました。

      あれ?こちらでは検索の向きに関係なく2組にヒットしてますよ。


      >個人的には、先頭から検索した場合でも4組にヒットするのが自然だと思うのですが、いかがでしょうか。
      >因みに、秀丸やK2Editorではどちらから検索した場合でも4組にヒットしました。

      4組でヒットするか、2組でヒットするかは検索の仕様の違い
      (エディタによって、どちらもある。例:Peggyは2組でした)
      なので、一概にどちらが良いとも言えないみたいです。

      いろいろ対応してしまうサクラ的には、これも設定で切り替えられるべき?
      • [4762] Re2: 文字列の検索 (全略) 2005年10月27日 23:25

        ▼ かろとさん
        > あれ?こちらでは検索の向きに関係なく2組にヒットしてますよ。
        正規表現検索では2組にヒットするようですが
        普通の検索では4組になるみたいですね

        言われるまで気づきませんでしたが ^^;

        > 4組でヒットするか、2組でヒットするかは検索の仕様の違い
        > (エディタによって、どちらもある。例:Peggyは2組でした)
        > なので、一概にどちらが良いとも言えないみたいです。
        4組にヒットすると検索文字ハイライトと微妙に違ってくるので
        個人的には2ヒットの方がいいかなと思いますが
        • [4763] Re3: 文字列の検索 かろと 2005年10月28日 23:33

          >タイトル: Re3: 文字列の検索
          >発言者: (全略)
          >正規表現検索では2組にヒットするようですが
          >普通の検索では4組になるみたいですね
          >
          >言われるまで気づきませんでしたが ^^;

          ホントだ・・・正規表現でしか使ったことないのがバレバレですね。。(--;


          diff --dos -ur -x CVS -x tags -x sakura_rc.aps -x *.obj -x *.RES -x *.rc sakura_core_R1_5_7_2/CDocLineMgr.cpp sakura_core/CDocLineMgr.cpp
          --- sakura_core_R1_5_7_2/CDocLineMgr.cpp Sat Oct 22 13:12:58 2005
          +++ sakura_core/CDocLineMgr.cpp Fri Oct 28 23:20:46 2005
          @@ -1897,7 +1897,7 @@
          );
          if( NULL != pszRes ){
          nHitPos = pszRes - pLine;
          - nIdxPos = CMemory::MemCharNext(pLine, nLineLen, pszRes) - pLine; // Azumaiya前方検索で選択範囲がおかしくなることがあるバグ修正
          + nIdxPos = nHitPos + nPatternLen; // マッチ文字列長進めるように変更
          if( nHitPos >= nHitTo ){
          if( -1 != nHitPosOld ){
          *pnLineNum = nLinePos; /* マッチ行 */