変数に入ったデータを2次元配列にする方法

投稿者: 投稿日:2018/01/27(Sat) 16:32:19 No.1976

 こんにちは、お世話になります。

 下記のように変数に改行とタブ文字で区切られたデータが入っているとします。

----------
データは、「A  88  2018年1月10日
B  90  2018年1月10日
C  80  2018年1月13日」
----------

 これを2次元配列(いわゆるデータ表の形式)に変換して、1列目や2列目だけのデータを取り出したいと考えています。
 で、今まではファイルに保存してそれを読み込んで取得したり、改行文字で区切って配列にした後、「それぞれ繰り返す」でタブ文字で区切った後、それを1つずつ別の配列に加えて行ったりしていたんですが、もう少し簡単にできないかと思い、質問させていただきました。
 もし、上記のようなことをもう少し簡単にする方法がありましたら、教えていただけると幸いです。

 以上、よろしくお願いいたします。

Re: 変数に入ったデータを2次元配列にする方法

投稿者:ゆうと 投稿日:2018/02/04(Sun) 19:07:34 No.1981

こんにちは ゆうとです。

>  で、今まではファイルに保存してそれを読み込んで取得したり、改行文字で区切って配列にした後、「それぞれ繰り返す」でタブ文字で区切った後、それを1つずつ別の配列に加えて行ったりしていたんですが、もう少し簡単にできないかと思い、質問させていただきました。

どのようなプログラムを作ってみたのでしょうか。
プログラム例などがあると、より良い書き方があるかどうか、答えやすいかと思います。

それでは。

一応ソースを書いてみましたが…

投稿者: 投稿日:2018/02/06(Tue) 20:54:12 No.1984

 こんばんは、お世話になります。
 返信が遅くなり、申し訳ありません。

 とりあえず、今まで書いてきたソースを張り付けてみます。
 なお、想定としては、素材リストやHTTP取得で取得したデータを加工するという感じです。
 ちなみに、さっき気づいたんですが、タブ文字を書き込むと、なぜか全角スペースに置き換えられてしまうようで、先日投稿した表の部分がうまく表示されてなかったようです。
 ということで、今回はコンマで代用してみます。

 まず、1つ目のソースです。

----------
データは、「A,88,2018年1月10日
B,90,2018年1月10日
C,80,2018年1月13日」
配列は、データを[改行]で区切ったもの
番号一覧は、{}
数値一覧は、{}
日付一覧は、{}
配列を要素にそれぞれ繰り返す
もし要素が無でないなら
文字列は、要素を「,」で区切ったもの
文字列(1)を番号一覧へ加える
文字列(2)を数値一覧へ加える
文字列(3)を日付一覧へ加える
もし終わり
繰り返し終わり
番号一覧を表示
数値一覧を表示
日付一覧を表示
----------

 続いて、2つ目のソースです。

----------
データは、「A,88,2018年1月10日
B,90,2018年1月10日
C,80,2018年1月13日」
データを「data.csv」へ保存する
データというデータ表を作る
データへ「data.csv」から読み込む
番号一覧は、データの1列目を一覧で取得したもの
数値一覧は、データの2列目を一覧で取得したもの
日付一覧は、データの3列目を一覧で取得したもの
「data.csv」を削除する
番号一覧を表示
数値一覧を表示
日付一覧を表示
----------

 2つ目のソースのほうが行数的にも少ないですし、簡単に実行できるんですが、ファイルの読み書きが発生するのが難点だと考えており、もう少し簡単に列の一覧を取得できないかと考えた次第です。
 何かアドバイス等をいただけると幸いです。

 以上、よろしくお願いいたします。

▲ページの先頭へ

- WebForum -