[4758] 文字列の検索 
2005/10/27 (木) 15:39:30 かて
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
検索について少し気になる点があったので報告します。

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


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


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


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

いろいろ対応してしまうサクラ的には、これも設定で切り替えられるべき?


[4762] Re2: 文字列の検索 
2005/10/27 (木) 23:25:51 (全略)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
▼ かろとさん
> あれ?こちらでは検索の向きに関係なく2組にヒットしてますよ。
正規表現検索では2組にヒットするようですが
普通の検索では4組になるみたいですね

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

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

4組にヒットすると検索文字ハイライトと微妙に違ってくるので
個人的には2ヒットの方がいいかなと思いますが


[4763] Re3: 文字列の検索 
2005/10/28 (金) 23:33:33 かろと
INCM1.23a
>タイトル: 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;                                                        /* マッチ行 */

INCM/CMT
Cyclamen v3.81