• ベストアンサー

データの読み込み方

visualBasic.NETを使用しているのですが、データの読み方がわかりません。 縦n個、横m個のdouble型数値のカンマ区切りのテキストファイルがあります。 配列a(n,m)にそれらの数値を入れるプログラムを教えてください。 仕事で必要なのですが、手持ちの参考書には書いてありません。 配列の数と数値の長さがわかっているときの方法はわかります。 今、問題になっているのは、配列の数も数値の長さも未知のときです。 大変申し訳ありませんが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ArrayListを使ったサンプルを作ってみました。 ArrayListから a(n,m)の配列にするには、 dim a(,) as double で宣言して redimしてからそれぞれの値をコピーすることになりますが、別段、そうした変換は必要ないと思います。 以下サンプル 'カンマ区切りのテキストファイルからdouble型数値を読み込む Imports System.Collections Imports System.IO Module Module1 Sub Main() Dim anArrayList As New ArrayList Dim i, j As Integer Dim oneLine As String Dim strArray() As String Dim doubleArray() As Double Dim sr As StreamReader sr = File.OpenText("data.txt") Do While sr.Peek() >= 0 oneLine = sr.ReadLine() strArray = oneLine.Split(",") doubleArray = Array.CreateInstance(GetType(Double), strArray.Length) For i = 0 To strArray.Length - 1 doubleArray(i) = Convert.ToDouble(strArray(i)) Next anArrayList.Add(doubleArray) Loop sr.Close() ' 表示 Console.WriteLine("anArrayList") Console.WriteLine("データ数:{0}", anArrayList.Count) For i = 0 To anArrayList.Count - 1 Console.WriteLine(ControlChars.CrLf & "データ[{0}]:", i) For j = 0 To anArrayList(i).Length - 1 Console.Write("[{0}]", anArrayList(i)(j)) Next Next End Sub End Module

roborobo
質問者

お礼

具体的に教えていただき、ありがとうございます。 早速、やってみたいと思います。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

2次元配列ではなく、DataTableを使えば簡単では? 縦横の個数を何時でも増やせるので

roborobo
質問者

お礼

ありがとうございます。 早速、やってみたいと思います。

関連するQ&A