コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
Ryou Tanpo ◆AI5iRr9FjmkJ
2018/2/1 21:28
DATA の値を、型を気にすることなく安全に読み取るライブラリを作成しました。次の DATA の型をチェックしながら、読み取ることができます。
需要あるかわかりませんが。

公開キー 【4RY3EEBD】

EXEC "PRG1:DATALIB"
INITDATA

で初期化できます。詳しい使い方はコメントへ

コメント

アバター
Ryou Tanpo 2018/2/1 21:30 ◆AI5iRr9FjmkJ
HAS() が TRUE を返している間は GET() で READ 相当の操作が行えます。GET() は別の公開関数を内部で呼び出しています

PRINT GET()
アバター
Ryou Tanpo 2018/2/1 21:33 ◆AI5iRr9FjmkJ
◯番目の DATA の値を読み込むには GETAT() を使います。

PRINT GETAT(4)

範囲外ではエラーを起こすので、DATA の数を返す DATACOUNT() を使って

' DATA は 5 以上ある
IF DATACOUNT()>=5 THEN ...

のようにしてください。
アバター
Ryou Tanpo 2018/2/1 21:38 ◆AI5iRr9FjmkJ
HAS() が TRUE を返しているときに 次の DATA の型のチェックをするには TYPE() を使います。必ず GET() を使う前に呼び出してください。そのうち使い勝手は改善したいと思います。
TYPE() は型に応じて % # $ のいずれかを返します。

IF HAS() THEN
PRINT TYPE(),
PRINT GET()
ENDIF

とすると、次の DATA があるときに、型情報と値を表示してくれます。
アバター
Ryou Tanpo 2018/2/1 21:40 ◆AI5iRr9FjmkJ
注意しなければならないのは、先ほどの例で

PRINT TYPE(),
PRINT GET()

とあるところを

PRINT TYPE(),GET()

とはできないということです。
後者では、SmileBASIC の仕様上 GET() から先に実行されます。そのため TYPE() が後に実行されることになります。GET() は実行された時点で内部のカウントを進めるので、最後のあたりで TYPE() を実行した時にエラーが発生してしまいます。

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -