I've created bug 31355 and attached a zip file containing my source code,
using [codec] as the base package. Apologies in advance if I'm not following
the right code styles. 

As others have commented, there are several CSV "specs" out on the web. This
is the one I used when writing this:
http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm#FileFormat

The actual algorithm gets fairly complex and ugly inside the parse method
(lots of special cases depending on state); I haven't been able to tease out
a more object-oriented approach yet but I gotta believe there's one out
there. If someone sees a better way of accomplishing this, I will gladly use
it.

Tim

> -----Original Message-----
> From: Henri Yandell [mailto:[EMAIL PROTECTED]
> Sent: Friday, September 17, 2004 11:36 AM
> To: Jakarta Commons Developers List
> Subject: Re: CSV parser & printer
> 
> Unless anyone wants to -1 it, submit your code in as the package
> org.apache.commons.io.csv to Bugzilla as a zip or something (including
> unit tests) and I'll go ahead and review it there.
> 
> Mainly I'll be looking to make it support what my ones do too, so I
> can go ahead and drop them. Or if I feel strongly about the simplicty
> of mine or something, I'll then try to convince you to start with
> mine.
> 
> Hen
> 
> On Fri, 17 Sep 2004 10:28:26 -0500, Tim Dawson <[EMAIL PROTECTED]>
> wrote:
> > I probably should have said up front that I had written this expressly
> > because the ostermiller implementation is inaccessible to me due to the
> GPL
> > license.
> >
> > > http://www.osjava.org/genjava/multiproject/gj-csv/
> >
> > I didn't run across that in my search; I'll have to check it out more in
> > depth.  One thing I like off the top is being able to read field-by-
> field;
> > my implementation currently grabs a line at a time, but I can see on a
> very
> > wide file that this would be necessary.
> >
> > Regardless, is there any interest in placing this in commons? I know my
> > company prefers to minimize the number of sources for tools, and having
> this
> > in commons would have been helpful for me. If there's interest I'll
> clean up
> > the code (add apache banner, format according to accepted styles, that
> sort
> > of thing) and send it out for review and voting.
> >
> > > IO is the first place I'd look for csv handling (though possibly only
> > > because I implement them as Reader/Writer style classes). Others have
> > > suggested Codec in the past.
> >
> > Yeah, there's no clear winner between the two. They're not exactly
> > reader/writers which is why I named them parser & printer -- just so
> nobody
> > expected them to be subclasses of java.io.Reader & java.io.Writer.
> >
> > Tim
> >
> >
> >
> >
> > > -----Original Message-----
> > > From: Henri Yandell [mailto:[EMAIL PROTECTED]
> > > Sent: Thursday, September 16, 2004 6:51 PM
> > > To: Jakarta Commons Developers List; Dion Gillard
> > > Subject: Re: CSV parser & printer
> > >
> > > http://www.osjava.org/genjava/multiproject/gj-csv/
> > >
> > > is available as well if it has any useful ideas that could be merged
> in.
> > >
> > > IO is the first place I'd look for csv handling (though possibly only
> > > because I implement them as Reader/Writer style classes). Others have
> > > suggested Codec in the past.
> > >
> > > Hen
> > >
> > >
> > > On Fri, 17 Sep 2004 09:43:11 +1000, Dion Gillard
> <[EMAIL PROTECTED]>
> > > wrote:
> > > > The licensing on those is GPL.
> > > >
> > > >
> > > >
> > > >
> > > > On Thu, 16 Sep 2004 14:32:20 -0400, Jung, Eric
> <[EMAIL PROTECTED]>
> > > wrote:
> > > > > Tim,
> > > > > Someone beat you to the punch. There's already an implementation
> at:
> > > > >
> > > > > http://ostermiller.org/utils/CSV.html
> > > > > and for excel:
> > > > > http://ostermiller.org/utils/ExcelCSV.html
> > > > >
> > > > > I haven't used them so I don't know how well they work.
> > > > >
> > > > > That said, these classes are on the lesser-known Giant Java Tree,
> not
> > > > > Commons, and are licensed under GPL, not LGPL :( so I would very
> much
> > > like
> > > > > to see your work whether or not the Commons folks are interested
> in
> > > > > publishing it.
> > > > >
> > > > > Good luck,
> > > > > Eric
> > > > >
> > > > >
> > > > >
> > > > > -----Original Message-----
> > > > > From: Tim Dawson [mailto:[EMAIL PROTECTED]
> > > > > Sent: Thursday, September 16, 2004 2:18 PM
> > > > > To: [EMAIL PROTECTED]
> > > > > Subject: CSV parser & printer
> > > > >
> > > > > I've implemented CSV parser & printer classes (with accompanying
> unit
> > > tests)
> > > > > that are Microsoft Excel compatible (i.e. it uses double quotes
> rather
> > > than
> > > > > an escape character). I'd like to donate it to commons; any
> interest?
> > > Which
> > > > > project would it go to - I didn't see one that jumped out as being
> the
> > > > > obvious candidate.
> > > > >
> > > > > Tim Dawson
> > > > > [EMAIL PROTECTED]
> > > > >
> > > > > ------------------------------------------------------------------
> ---
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: commons-dev-
> [EMAIL PROTECTED]
> > > > >
> > > > >
> > > > >
> > > > > ------------------------------------------------------------------
> ---
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: commons-dev-
> [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > http://www.multitask.com.au/people/dion/
> > > >
> > > >
> > > >
> > > > --------------------------------------------------------------------
> -
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> >
> >
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to