-1

Ruby の新機能で、特定の列を .rb ファイル内で参照できる配列値に割り当てようとしています。また、学習しようとするため、ショートカット (自作ソリューションなど) を使用しないようにします。

ファイル.dat

1  88    59    74          53.8       0.00         280  9.6 270  17  1.6  93 23 1004.5
2  79    63    71          46.5       0.00         330  8.7 340  23  3.3  70 28 1004.5
3  77    55    66          39.6       0.00         350  5.0 350   9  2.8  59 24 1016.8
4  77    59    68          51.1       0.00         110  9.1 130  12  8.6  62 40 1021.1

このようなさらに多くの行。

ありがとう!

4

1 に答える 1

1

これを試して:

input = File.open('./file.dat', File::RDONLY){|f| f.read }
array = input.lines.map(&:split)

ネストされた配列が得られます。次に例を示します。

[
  ["1", "88", "59", "74", "53.8", "0.00", "280", "9.6", "270", "17", "1.6", "93", "23", "1004.5"],
  ["2", "79", "63", "71", "46.5", "0.00", "330", "8.7", "340", "23", "3.3", "70", "28", "1004.5"],
  ["3", "77", "55", "66", "39.6", "0.00", "350", "5.0", "350", "9", "2.8", "59", "24", "1016.8"],
  ["4", "77", "59", "68", "51.1", "0.00", "110", "9.1", "130", "12", "8.6", "62", "40", "1021.1"]
]

配列に数値が必要な場合は、次を使用します。

array = input.lines.map{|l| l.split.map(&:to_f) }

次のような配列が残ります。

[
  [1.0, 88.0, 59.0, 74.0, 53.8, 0.0, 280.0, 9.6, 270.0, 17.0, 1.6, 93.0, 23.0, 1004.5],
  [2.0, 79.0, 63.0, 71.0, 46.5, 0.0, 330.0, 8.7, 340.0, 23.0, 3.3, 70.0, 28.0, 1004.5],
  [3.0, 77.0, 55.0, 66.0, 39.6, 0.0, 350.0, 5.0, 350.0,  9.0, 2.8, 59.0, 24.0, 1016.8],
  [4.0, 77.0, 59.0, 68.0, 51.1, 0.0, 110.0, 9.1, 130.0, 12.0, 8.6, 62.0, 40.0, 1021.1]
]
于 2012-11-18T11:07:26.917 に答える