<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: Shawnpyle's Code Snippets</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 15:45:26 GMT</pubDate>
    <description>DZone Snippets: Shawnpyle's Code Snippets</description>
    <item>
      <title>QIF to CSV conversion script in Ruby</title>
      <link>http://snippets.dzone.com/posts/show/5409</link>
      <description>// Converts QIF files to CSV files&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'fileutils'&lt;br /&gt;&lt;br /&gt;if ARGV.size &lt; 1&lt;br /&gt;        puts "Usage: #{$0} file.qif"&lt;br /&gt;        exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;input = File.new(ARGV[0])&lt;br /&gt;output = [File.basename(ARGV[0]).split('.')[0..-2], 'csv'].join('.')&lt;br /&gt;output = File.new(output, 'w+')&lt;br /&gt;output.write("date,amount,description,transaction id, address\n")&lt;br /&gt;&lt;br /&gt;entries = input.read.split("^\n")&lt;br /&gt;entries.compact&lt;br /&gt;for entry in entries&lt;br /&gt;        e = entry.match(/D(.*)\nT-?(.*)\nP(.*)\nN(.*)\nA(.*)\n/).to_a[1..-1]&lt;br /&gt;        e[1] = e[1].to_f rescue nil&lt;br /&gt;        e[-1] = "\"#{e[-1]}\""&lt;br /&gt;        output.write("#{e.join(',')}\n")&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 20 Apr 2008 21:34:03 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5409</guid>
      <author>shawnpyle (Shawn Pyle)</author>
    </item>
  </channel>
</rss>
