前回は、
でテキストの取り扱いについて書きましたが、今回は、その応用です。
SmallBASICでは、
のようなオブジェクトに
のように操作を足して何をするのかを決定する訳ですが、現在は、表示においてTextWindowのオブジェクトを用いており、先日は、Textのオブジェクトでテキストのどこを呼び出すかをコントロールしました。また、Fileオブジェクトでは、
でファイルへの読み書きが可能なことに触れ、
を用いることでテンポラリーファイルへの書き出しが可能なことについても触れました。
とりあえず、今回はそうした機能を使ったデータの読み込みをしていこうかなと思います。
■ データを行でまとめる
前回までは、1行のデータは1つのまとまりと言う感じで、それを指定してお呼び出すような方法をしていましたが、この方法だと、変数に1行を消費するととてつもなく膨大な行数になってしまうと言う問題が出てきます。
とりあえず、データについては、
のような感じで、記録段階でまとめると一つの行に複数のデータを保存することができます。これを実行すると、
のように三つの変数を一つの行にまとめることができます。また、
のようにText.GetSubtextを用いた場合、この文字列の場所の指定が可能になりますから、
のように元のデータから数値のみを参照して呼び出すことができます。
当然、
のように配置を行い、パラメーター表記と連動させると、
のようなデータ参照と表記が可能になります。当然、変数はその後の数式によって変動させることが可能ですから、この数値をコントロールすることが可能ですが、定数指定を行った物だけではなく、
のように変数に【 Math.GetRandomNumber() 】を用いた場合も同様の処理ができます。その為、
のような変数をテンポラリーに記録してそれを参照してデータ部分だけを抽出して変数として使うことができます。パラメーターの数値を用意する場合に、複数の変数を用意してそれを記憶する場合、それを個別の行に記録することもできるのですが、定数の場合や桁の変動が起きない条件下だとこうした記述だけで変数参照が可能になります。
ちなみに、この一桁の数値の記録の場合ですが、これを1行目に記録した場合、2桁目は2列目3桁目は3列目としておくと、
【 10データの記載されている桁数) 】
でその桁の数値になりますから、桁数をiと言う変数で読み込むとすると、
1桁目 a
2桁目 b
3桁目 c
とした場合、この三つの数字の並んだ三桁の数字は、
a + ( b * Math.Power(10,1) ) + ( c * Math.Power(10,2) )
で算出できます。そうなると、
a=6
b=5
C=2
i=1
D = a + ( b * Math.Power( 1 0 ,i ) ) + ( c * Math.Power(10, i + 1 ) )
とした場合、変数Dには256が入ります。
iをTextWindow.WriteLine()の行数に指定して、それを桁数を個別に記録すると、こうした方法で別の変数の数値として再構築して桁を持たせることができます。
とりあえず、過去の1-10までは、
にまとめておきました。
SmallBASICですが、オンラインでも使えるので、
■ SmallBASIC(WEBブラウザ版)
https://smallbasic-publicwebsite.azurewebsites.net/
で試すこともできます。ただし、Fileオブジェクトを用いた場合のように、ストレージ内に読み書きできるテキストファイル存在する事が前提のプログラムだと、ストレージ内にその指定先のテキストファイルが存在しない場合にはエラーが出ます。また、ファイルが存在していても、絶対パスの記述が間違っている場合も、存在しないファイルの予備台になるのでエラーが出ます。そうした点には注意が必要ですが、インストールせずにオンラインでSmallBASICを使用することが可能です。