文字列検索

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 文字列検索

by M.S. » 2007年10月30日(火) 18:11

> あまりじっくりコードを追っていないので、
> 何が原因かは分からないのですが、
>

コード: 全て選択

CurPos=SendMessage(hEdit,EM_GETSEL,0,0)
> の部分は、現在のカーソル(開始)位置をCurPosに代入しようとしているんですよね?
> だとすれば、
>

コード: 全て選択

SendMessage(hEdit,EM_GETSEL,VarPtr(CurPos),0)
> とする必要があります。
> # EM_GETSEL の返り値も実はカーソル開始位置を返すんだったら、ごめんなさい。

このようにすると、ボタンを 2 度押さないと次の文字を検索せず、
二度手間になるので

コード: 全て選択

SendMessage(hEdit,EM_GETSEL,0,VarPtr(CurPos))
として終了位置を格納しました。
"CurPos=" のときと同じ動作をしました。

>

コード: 全て選択

*START
> の直後あたりにDebug命令を入れて、変数の挙動が自分の望むものになっているかどうかを、追ってみるのはいかがですか?
> # もうされていましたら、失礼。

していませんでした。
やってみましたが、
改行やらタブがいっぱいあるので、
返ってくる値がわからず諦めました。

これを AB4.24 で試すと正常な動作をしましたが、
AB5 (CP3) では誤った動作をします。
誤った動作をするのは、
ファイルの下の方へ行けば起こります。

by 淡幻星 » 2007年10月29日(月) 22:51

M.S.さんの求めてる回答にはならないだろうことを、最初に謝っておきます。
なお、以下ではAB4を前提に書きます。

あまりじっくりコードを追っていないので、
何が原因かは分からないのですが、

コード: 全て選択

CurPos=SendMessage(hEdit,EM_GETSEL,0,0)
の部分は、現在のカーソル(開始)位置をCurPosに代入しようとしているんですよね?
だとすれば、

コード: 全て選択

SendMessage(hEdit,EM_GETSEL,VarPtr(CurPos),0)
とする必要があります。
# EM_GETSEL の返り値も実はカーソル開始位置を返すんだったら、ごめんなさい。

コード: 全て選択

*START
の直後あたりにDebug命令を入れて、変数の挙動が自分の望むものになっているかどうかを、追ってみるのはいかがですか?
# もうされていましたら、失礼。



最後に蛇足?ですが。
コードだけでなく、
 ・自分が望む結果
 ・それに反して、実際の結果
を記述すると、回答者が増えると思いますよ~。

文字列検索

by M.S. » 2007年10月29日(月) 18:51

"InStr()" を使った文字列検索で誤った場所がドラッグされるときがあったので、
hira さんの "InStr2()"、
Sinryow さんの "Instr3()" を使わさせてもらったのですが、
"InStr()" のときと同じ結果になりました。
"InStr4()" でも同じでした。

これは、検索のやり方がまずいのでしょうか?
コードを載せておきます。
お願いします。

ページトップ