// Converts QIF files to CSV files
1
2
3
4 require 'rubygems'
5 require 'fileutils'
6
7 if ARGV.size < 1
8 puts "Usage: #{$0} file.qif"
9 exit
10 end
11
12 input = File.new(ARGV[0])
13 output = [File.basename(ARGV[0]).split('.')[0..-2], 'csv'].join('.')
14 output = File.new(output, 'w+')
15 output.write("date,amount,description,transaction id, address\n")
16
17 entries = input.read.split("^\n")
18 entries.compact
19 for entry in entries
20 e = entry.match(/D(.*)\nT-?(.*)\nP(.*)\nN(.*)\nA(.*)\n/).to_a[1..-1]
21 e[1] = e[1].to_f rescue nil
22 e[-1] = "\"#{e[-1]}\""
23 output.write("#{e.join(',')}\n")
24 end