![]() |
前回の配列変数は、マスター出来ましたか? 次は、配列変数の配列変数、即ち、二次元配列変数が、出てきます。 ひまわりの二次元配列は、表計算ソフトなどで使われる、CSV形式になっているので、便利です。 |
使い方
配列変数と、同じ感じです。ただ、指定する番号が2つに増えただけです。
変数名前#横の番号#縦の番号
絵で書くと、↑な、感じです。
{二次元配列のサンプル}
ロッカー#0#0=「スワップ」
ロッカー#1#1=「akio」
ロッカー#2#2=「Ps」
(ロッカー#1#1)を、表示。
グリッドと合わせて使う
前回のリストと同じように、グリッドのアイテムに二次元配列を指定すると、内容が一覧表示されます。
{二次元配列の設定}
ロッカー#0#0=「名前」
ロッカー#1#0=「特徴」
ロッカー#0#1=「ジ三ーぺイシ」
ロッカー#1#1=「シェッペりソのギタリスト。王道プレイ」
ロッカー#0#2=「フラソク・ザッパ」
ロッカー#1#2=「変態だが神々しい。ユーモアセンス抜群」
ロッカー#0#3=「スラィーブ・フ゛ァイ」
ロッカー#1#3=「進化の体現者。ハイレベル」
{グリッド作成}
ロッカー表を、グリッドとして、作成。
その、アイテムを、ロッカーに、設定。
↓実行結果
ちょっと、説明が遅れましたが、二次元配列では、
のように、使います。
変数名#X列目#Y行目
配列の正体
ところで、配列変数の正体とは、なんでしょうか?
得体の知れない感じがするのですが、配列の中身を、表示させてみると、な〜んだって、気持ちになります。
どうですか?
配列#0=「要素0の値」
配列#1=「要素1の値」
配列#2=「要素2の値」
配列#3=「要素3の値」
配列と、言う。{←配列変数なのに要素番号を指定しない}
な〜んか、そのまんまですよね。
では、二次元配列は、どうなってるんでしょうか?
↑を、実行すると、↓のような結果が得られます。
{二次元配列の設定}
人物表#0#0=「名前」
人物表#1#0=「年齢」
人物表#2#0=「性格」
人物表#0#1=「ドうえモん」
人物表#1#1=「30」
人物表#2#1=「おせっかいで涙もろい好漢」
人物表#0#2=「レずか」
人物表#1#2=「38」
人物表#2#2=「心優しくおっとりとした永遠の少女」
人物表#0#3=「のび犬」
人物表#1#3=「38」
人物表#2#3=「世界の平和を願う愛国主義者」
人物表と、表示。{←配列変数なのに要素番号を指定しない}
これを、よく見てみると・・・
名前,年齢,性格
ドうえモん,30,おせっかいで涙もろい好漢
レずか,38,心優しくおっとりとした永遠の少女
のび犬,38,世界の平和を願う愛国主義者
各行が、半角のカンマ( , )で、区切られていますよね。
勘の良い方は、お気づきかもしれませんが、これは、CSV形式といって、エクセルや、その他の表計算ソフトなどで、よく使われる形式です。
ファイルへ保存
では、これを、ファイルに保存してみましよう!
ファイルに保存するには、
を、使います。
(ファイル名)へ、保存。
これは、特殊変数「それ」の内容を、(ファイル名)へ、保存するという命令です。
{二次元配列の設定}
人物表#0#0=「名前」
人物表#1#0=「年齢」
人物表#2#0=「性格」
人物表#0#1=「ドうえモん」
人物表#1#1=「30」
人物表#2#1=「おせっかいで涙もろい好漢」
人物表#0#2=「レずか」
人物表#1#2=「38」
人物表#2#2=「心優しくおっとりとした永遠の少女」
人物表#0#3=「のび犬」
人物表#1#3=「38」
人物表#2#3=「世界の平和を願う愛国主義者」
それは、人物表。
「test.csv」へ、保存。
「test.csv」を、起動。’csvに関連付けられているアプリで開く。
そうしたら、実際エクセルで、開けるのかテストしてみましょう。
普通に、エクセルをインストールしていると、xxx.csv というような、拡張子がCSVのものは、エクセルと関連付けられています。
このプログラムを実行すると、このプログラムと同じフォルダに(ファイルに名前を付けて保存してなければ、ひまわりのプログラムがあるフォルダに)"test.csv"というファイルが作られます。
これを、ダブルクリックすると、「あら、不思議!」・・・エクセルで、ひまわりの二次元配列が見られます。
集計・並び替え・機能
さて、二次元配列変数が、外部アプリケーションと連動できて、便利だというのが、分かって頂けたと思いますが、ひまわりの中で、二次元配列の表を集計したり計算したり、出来ないのでしょうか?
実は、簡単に、並び替えや集計が出来ます!
以下は、数値順に並び替えをする例です。ここでの、ポイントは、表数値ソート命令です。
{二次元配列へ値設定(カンマ区切りを利用)}
価格#0=「商品, 値段」
価格#1=「やせる石鹸, 500」
価格#2=「ゲームウォッチ, 3000」
価格#3=「Gショック, 30000」
価格#4=「たまごっち, 1980」
価格#5=「バイアグラ, 12000」
表を、グリッドとして、作成。
その、アイテムを、価格に、設定。
ソートボタンを、ボタンとして、作成。
その、テキストを、「値段順」に、設定。
その、イベントを、値段順ソートに、設定。
待機。
*値段順ソート
表フィールド名=オン。
価格の、1列目を、表数値ソート。
表の、アイテムを、それに、設定。
待機
これは、
のように使います。
(二次元配列変数)の、(並び替え基準列)を、表数値ソート
この命令を使うと、特殊変数「それ」へ、並び替えを行った結果を返します。
また、ひまわりの配列変数の番号は、0から始まりますので、上の例では、「1列目」が、指定されています。
助けて! 上のプログラムを入力したんだけど、エラーが出るんだけど・・・
ひまわりでは、ある程度、半角文字(例:ABC)と、全角文字(例:ABC)は、同じ意味だと認識しますが、普通のプログラム言語では、これを別のものとして認識することが多いです。ひまわりでも、「」の中にある全角文字は、別のものとして処理されますので、二次元配列の文字の区切れには、半角文字のカンマ( , )を使わなければなりません。