メモリノートパッド †
ここはメモリノートパッド(以降メモリノートと省略)に関するページです。
メモリノート形式とは要素を改行で区切ったフォーマットのテキストを指します。
これに対して要素をカンマで区切ったフォーマットのテキストはCSV形式と呼ばれます。
CSV形式は一般的な呼び方に対してメモリノート形式はHSP独自の呼び方です。
HSP以外のプログラマに言っても伝わらないかもしれませんのでご注意を。
文字列を行単位で挿入・削除・上書きなどの操作を簡単に行えます。
HSPのバージョンによって特徴が若干異なってきますので以下の表を参考に読み分けてください。
記号 | ◎: 関数、○: 対応、△: マクロ、×:非対応 |
命令 | HSP2.61 | HSP3.0a | 説明 |
---|
| | | |
notesel | ○ | ○ | メモリノートの対象バッファを設定 |
noteadd | ○ | ○ | メモリノートに行を挿入/上書き |
noteget | ○ | ○ | メモリノートから行取得 |
notedel | ○ | ○ | メモリノートから行削除 |
noteload | ○ | ○ | メモリノートにファイルから読み込み |
notesave | ○ | ○ | メモリノートからファイルに書き込み |
noteunsel | × | ○ | メモリノートの対象バッファをnoteselで設定する前の状態に戻す |
noteinfo | × | ◎ | メモリノートの情報を取得(HSP3 で notemax/noteinfo の本体) |
notemax | ○ | △ | メモリノートの行数(HSP3 ではマクロ) |
notesize | × | △ | メモリノートのサイズ(HSP3 ではマクロ) |
hsp2.61・hsp3.0 共にプログラミングガイドの『2.スクリプト記述の基本 - メモリノートパッド命令』を一読してみてください。
- 結構便利に使えるんだけど初心者にとっては使い方が良く分からなかったり勘違いしていたりするので『詳説 メモリノートパッド』的な内容にしようかな。
HSP2からネタ拾ってきました。
しかし今、風邪引いてこれから寝るところなので風邪が治ったら続きかきます。
もしくは代わりに誰か進めてもOKorz。あとでちょこっと手加えるかもです^^; -- kz3
- というかプログラムガイドにも「メモリノートパッド命令」という項目を命令リファレンスとは別に設けて説明してあるんだけどなぁ・・・。内容的にダブりそうな予感。 -- kz3
- 2つの変数で2つのノートパッド形式を使っていて、切り替えるたびにnoteselを使っているけど、切り替えるときはnoteunselを入れないとダメなのかな。エラーないけれど...。 -- hiroki?
- noteunselの説明は、「対象バッファを解除」でいいような気がします。ヘルプ見てもよく分かりませんが・・・。 -- QIG
- noteunselの意味が分かりました!
1
2
3
4
5
6
7
8
9
10
11
12
13
|
| notesel buf
noteadd "test"
notesel buf2
noteadd "test2"
noteadd "test3"
noteunsel
noteadd " test4"
mes " buf : buf2"
mes "----------------------"
mes " " + buf
pos 63,36
mes "" + buf2
|
- noteselを実行している状態でもう一度noteselを実行しても、以前のバッファは記憶されているようです。 -- QIG
- 言い方はものすごく変だけど、gosub(寄り道)みたいなものですね。 -- hiroki?
- 追記:noteunselは一段階しか記憶しないようです。 -- QIG
- noteselによる多重バッファ指定が行われるとどのような不具合が起こるのかが不明・・・。 -- kz3
- 一段階か、なんか裏レジスタみたいだな(わかる人いるかな?) -- Shark++
- 分かりませぬ・・・(アセンブラ用語・・・) -- kz3
- 確か、この機能は、他の言語では、split関数で提供されますよね。 -- くに
- メモリノートパッドはいわゆる「改行区切りテキスト」と表現すれば分かりやすいんじゃないでしょうか。 CSV は Comma Separated Value(カンマ区切りテキスト,直訳するならカンマ区切り値?)です。他に TSV(タブ区切りテキスト)というのもありますが...。 CSV はフィールドの値にカンマを含めることが可能な仕様(フィールドをダブルクオートで囲み、ダブルクオートは連続で二つ入力するとエスケープできる)ですが TSV や 改行区切りテキストは含めることができません。 --