【发布时间】:2013-09-06 02:48:23
【问题描述】:
我有一个包含以下数据的 CSV 数据文件:
id,account_number,balance,date
1,ar161429,482.29,11/28/2007 15:54
2,ar182364,266.93,10/9/2007 15:54
3,ar106644,887.78,10/23/2007 15:54
我正在尝试为日期和帐号创建一个数组,然后将日期进一步细分为日、月和年。我能够根据“,”拆分数据并为帐户和日期创建一个数组,但是当我尝试将日期拆分为月份和日期时,它不起作用。这是我的代码:
class Account
puts "Please Enter the name of account file in .txt format"
balance_file = gets.chomp
@number_lines = File.read(balance_file).scan(/\n/).count
@number_lines = @number_lines - 1
File.open(balance_file) do |aFile|
@@balance = []
@@balance_due = []
@@balance_due_day = []
@@balance_due_month =[]
@@balance_due_year = []
aFile.each_line do |line|
@@balance << line.split(",").values_at(2)
@@balance_due << line.split(",").values_at(3)
puts @@balance_due
end
i = 1
begin
@@balance_due_day[i] = @@balance_due[i].split("/").values_at(0)
@@balance_due_month[i] = @@balance_due[i].slice!(3,2)
i +=1
end while i<@number_lines
end
end
【问题讨论】:
-
什么版本的 Ruby?有一个 CSV 类可能会使这更容易一些。见ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.html。
-
不要使用
@@变量,除非您完全知道为什么要使用它们。类变量,如全局变量,有它们的位置,但不明智的使用通常表示不了解它们的用途,并且由于它们被意外更改而导致无法解释的错误/错误的真正问题。
标签: ruby arrays date csv split