TDJの隠れ家♪ トップ>HSP>Technic>メモリーノートパッド命令の利用(初級)

メモリーノートパッド命令の利用(初級)

メモリーノートパッド系の命令を活用すれば、いろいろなことが外部ファイル化でき、非常に便利です。

メモリーノートパッドとは?

メモリーノートパッド命令とは、テキストファイルなどを読み込み、それを操作する一連の命令のことをさしています。ユーザに見られてもいい設定ファイルなどを外部ファイルにすることでスクリプトが簡単なものになったりします。

テキストファイルを読み込む

メモリーノートパッドを使うのなら、まずテキストを読み込まなければいけません。"text.txt"を準備します。

// text.txt
Apple
Orange
Banana
Grape

"text.txt"の内容に特に意味はありません。

// notepad1.hsp
notesel text  //必ず必要!!
noteload "text.txt"  //ファイルを読み込む

メモリーノートパッド命令を使う前に、必ずnoteselで対象となる変数を指定しましょう。次の行のnoteloadで"text.txt"の内容をtextに読み込みます。変数のサイズを調節しておく必要はありません。

一行取得

"text.txt"では、要素を一行にひとつだけ書きました。これはメモリーノートパッド命令が行の操作中心だからです。まず、Appleを取得してみましょう。

// notepad1.hspの続き
noteget fruit,0
mes fruit

notegetで"text.txt"の一行目(メモリーノートパッド命令では行数は0から始まります)を取得し、fruitにそれを入れました。画面には"Apple"と表示されているはずです。

情報取得

メモリーノートパッド命令を使っていると、全体の行数などが必要になることがあるでしょう。

// notepad1.hspの続き
linemax=noteinfo(0)
mes linemax

noteinfo関数では、全体の行数(0)か文字数(1)が取得できます。

// notepad1.hspの続き
mes notemax
mes notesize

また、notemaxとnotesizeはnoteinfo(0)、(1)に対応するマクロです。

全行取得

全行を配列変数に格納しておくと、後で情報を処理しやすいことがあります。

// notepad1.hspの続き
sdim fruit,notesize+1,notemax
repeat notemax
  noteget fruit(cnt),cnt
loop

行数分の配列変数を作り、それぞれの行を入れていきます。このスクリプトを見てもらえばわかりますが、一切自分で入力した数値がありません。ですので、"text.txt"をどのように変更しても、このスクリプトは機能するわけです。これがメモリーノートパッド命令を使う利点です。