おためしあれ
//モジュール
#module
//検索エンジン
// 検索結果が返る変数,
// 検索対象となるリスト,
//_searchstr : 検索する文字列
//_mark : 見出し
#deffunc listsearch var _hitvar,var _searchlist , str _searchstr,str _mark
sdim data //変数初期化
offset=0
//検索文字列の分割
searchstr_size=strlen(_searchstr) : count=_searchstr
repeat
getstr selstr,count,offset,' '
data(cnt)=selstr
if selstr="":break
offset+=strsize
loop
// selstr count searchstr_size Free
//count=メインループカウント
//selstr=行取得
//searchstr_size=取得用
count=0
foreach data
if data(cnt)="":continue //空白の場合とばす
sdim listdata,64
notesel _searchlist
repeat notemax
noteget selstr,cnt //最初の行が代入される
if instr(selstr,0,data(count))!-1{ //HIT!
noteget selstr,cnt
listdata+=selstr+"\n" //追加
}
loop
count+
loop
noteunsel
_hitvar=listdata
//見出し追加
notesel _hitvar
repeat notemax
noteget data,cnt
noteadd _mark+data,cnt,1
loop
noteunsel
sdim searchstr_size
return
#global
//サンプル
#include "mod_listsearch.hsp"
//検索エンジン
// 検索結果が返る変数,
// 検索対象となるリスト,
//_searchstr : 検索する文字列
//_mark : 見出しらしきもの
searlist={"
a
b
c
d
Test a
Test b
Test c
"}
listsearch hitstr, searlist,"Test", "○"
mes hitstr