HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1004
もるけっちょメモ帳内の複数検索7解決


もるけっちょ

リンク

2012/10/4(Thu) 08:40:37|NO.49723

こんにちは。

hspを初めて数週間の者です。

メモ帳内の文字(複数)を検索し、表示したいのですがどの様にすればよろしいでしょうか。

例)

A_1
A_12
A_233
A_56
A_189

が書かれているメモ帳に対して
A_1を検索すると

A_1
A_12
A_189


と表示される様にしたいのです。

ご教示下さい。



この記事に返信する


(´ω`)

リンク

2012/10/4(Thu) 11:21:07|NO.49724

instrという関数を使ってください。
指定された文字列の中から、特定の文字列を探し出す関数です。

ただ、instrでは「先頭から○文字目以降から探す」という指定をする必要があるので、
おっしゃるような文章中から該当箇所を全て見つけ出すためにはちょっと工夫が必要です。

あと、その検索例では例えば、"BA_123"もヒットしていいのかどうか。
それらの条件により、もうちょい複雑な処理が必要になりますね。(´ω`)



fortunehill

リンク

2012/10/4(Thu) 12:20:25|NO.49726

/*正規表現でググレば幸せになれるかも知れません。*/



もるけっちょ

リンク

2012/10/4(Thu) 14:03:46|NO.49731

(´ω`)さん有難うございます。

以下のスクリプトを作成しましたが 該当する1つ目のみしかヒットしません。





notesel a noteload "test.txt" *inpt C="" input C,50,25,20:button "検索",*res stop *res gosub *clear E=instr(a,,t) if w=-1{ dialog "データ不一致_error":goto *inpt } else { goto *sech } *sech ret = 0 repeat E if(wpeek(a,cnt)==0x0a0d):ret++ loop repeat 3 noteget P,ret+cnt:mes P loop stop *clear clrobj color 255,255,255:boxf:color 0,0,0:pos 0,0 return



もるけっちょ

リンク

2012/10/4(Thu) 14:05:24|NO.49732

>あと、その検索例では例えば、"BA_123"もヒットしていいのかどうか。
→ BA_123 でヒットしても良いです。

複数表示が可能な、部分一致検索をしたいのです。



fortunehill

リンク

2012/10/4(Thu) 15:56:51|NO.49735

/*もっと単純で良いんじゃないですか?*/

notesel A A = {"A_1 A_12 A_233 A_56 A_189"} *inpt C = "A_1" input C,50,25,20:button "検索",*res stop *res repeat notemax noteget ss,cnt if (instr(ss,,C) != -1) {mes ss} loop stop



(´ω`)

リンク

2012/10/4(Thu) 20:55:44|NO.49781

fortunehillさまのシンプルさで全く問題ないですね。
いま尻からものすごい勢いで恥ずかしさが噴出しそうです。(u´ω`)



もるけっちょ

リンク

2012/10/5(Fri) 18:23:36|NO.49789

fortunehillさんのもので解決です!
有難うございました。

(´ω`)もご助言、有難うございました。

これからも勉強を続けます。



ONION software Copyright 1997-2023(c) All rights reserved.