dic.txtは、長いので別サイトにあります。HSP3.4の標準命令をリストにしたものです。
//一時バッファ buf = "" //検索する文字 token = "note" : input token //検索結果 sdim list, 64, 6 //テキスト読み出し(12KB程) notesel dic : noteload "dic.txt" repeat n = 0 foreach list list(cnt) = "" loop //すべての行を検索 repeat notemax //cnt行目をバッファに読み出し noteget buf, cnt //最初の文字がtokenだったら("note"で始まる文字列だったら) if instr(buf, 0, token) == 0 { //リストに見つかった順に代入 list(n) = buf //5回見つかったらそれ以上は探さない if n == 5 : break n++ } loop //結果表示 redraw 0 color 255,255,255 : boxf color : pos 0,30 foreach list mes list(cnt) loop redraw 1 wait 2 //20ミリ秒待機 loop
http://codepad.org/0JNSInDP
20ミリ秒待機させているのですが、(常駐ソフトとしては)CPUの負荷が高めで私の環境では6〜7%でした。
どこか改善できるところはないでしょうか?
3.5beta2ではnotefindという関数が追加されるらしく、それを使えば少し軽くなるかもしれませんが…