Todd Benson
5/27/2008 6:36:00 PM
On Tue, May 27, 2008 at 9:51 AM, Tim Wolak <tim.wolak@gmail.com> wrote:
> Account = Struct.new(:account_number, :balance_yesterday,
> :balance_today) do
> def difference
> balance_today - balance_yesterday
> end
>
> def to_s
> "#{account_number}\t#{balance_yesterday}\t#{balance_today}\t#{difference}\n"
> end
> end
>
>
> class SktyFut
> attr_reader :acct
>
> def initialize(filename)
> @acct = File.new(filename, "r")
> end
>
> def future_data
> @sktylist = Hash.new(0)
> @acct.each do |list|
> office = list[21..23] # =>
> if office == "RPT"
> next
> else
> acctnum = list[24..28]
> end
> lv = list[217..230]
> is_negative = list[215,1] == "-"
> value = lv.to_f/100
> value = -value if is_negative
>
> # Add vales to hash
>
> @sktylist[acctnum] += value
> end
> return @sktylist
> end
> end
>
> Dir.chdir("/Users/twolak")
> post = SktyFut.new("FutBalances20080507.txt")
> a = post.future_data
> #puts a
> pre = SktyFut.new("FutBalances20080506.txt")
> b = pre.future_data
> #puts b
> my_hash = Hash.new {|h,k| h[k] = Account.new(k)}
> a.each do |acc_nr, balance|
> my_hash[acc_nr].balance_yesterday = balance
> end
> b.each do |key, balance|
> my_hash[key].balance_today = balance
> end
>
> g = my_hash.to_s.sort
> puts g
>
> (the math will be wrong here as I have to take out info for security)
> 700700 1854.54 5652.05 3237970.2
> 701701 654.18 654.18 0.0
> 702702 99.07 99.07 0.0
Tim, are you trying to do something along the lines of this? (spacing
is irrelevant since you specify that by column number, I'm using
letters for account names instead of your numbers, but it doesn't
matter)...
post.txt:
a 1
b - 2
a - 4
b 8
RPT1 2
RPT
g - 1
prev.txt:
a 2
b - 2
a 0
b 7
z 9
RPT1 2
run_report.rb:
post = Hash.new(0)
IO.foreach("post.txt") do |line|
post[line[3..3]] += line[5..7].to_i.to_f unless line[0..2] == "RPT"
end
prev = Hash.new(0)
IO.foreach("prev.txt") do |line|
prev[line[3..3]] += line[5..7].to_i.to_f unless line[0..2] == "RPT"
end
report = {}
(post.keys | prev.keys).each do |k|
report[k] = post[k], prev[k], post[k] - prev[k]
end
p report
Now, this I would "pretty" up significantly, but I'm just trying to
get an idea of what your after.
Todd