« HSPTV!メルマガ 第35号 | メイン | 【講座】HSPよく使うフレーズ 第26回 配列で移動 »

2007年03月20日

【講座】HSP3ワンポイントテクニック 第17回

このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。

今回はテキストファイルを扱う方法を取り上げてみましょう。
HSPでは、テキストを扱うために、メモリノートパッドと呼ばれる
命令セットを用意しています。以下はその使用例です。

notesel buf
noteload "test.txt" ; テキストファイル読み込み
repeat notemax ; テキスト行数分繰り返す
noteget a,cnt ; 1行づつ取り出す
mes a
loop

このサンプルでは、「test.txt」というテキストファイルを
変数bufに読み込んで、noteget命令で1行づつ取り出して表示して
います。このように、とても手軽に1行単位のデータを取り出す
ことができるようになっています。
しかし、メモリノートパッド命令はメガバイト単位の大きな
テキストファイルに対しては実行速度がそれほど速くありません。
そこで、1行づつ順番に取り出す場合は、getstr命令を使うことで
高速化することができます。以下はそのサンプルです。

notesel buf
noteload "test.txt" ; テキストファイル読み込み
repeat
getstr a,buf,index,0 ; 1行づつ取り出す
index=index+strsize ; 次の取り出し位置に移動
if strsize=0 : break ; サイズが0ならば終了
mes a
loop

これも、さきほどのスクリプトと同様にテキストファイルの内容を
1行づつ取り出します。notesel命令を使用しているのは、テキスト
ファイルを読み込むためで、noteload命令は変数バッファに
ファイルの内容をそのまま読み込む命令だと考えて問題ありません。
getstr命令のパラメーターについては、ヘルプを参考にしてみて
ください。

(おにたま)

投稿者 usuaji : 2007年03月20日 23:06

口臭チェッカー市場