Hi,
From: "Jim Freeze" <
[email protected]>
Sent: Wednesday, September 24, 2003 7:05 AM
I have found that the csv parser by NaHi to be very good and
full featured.
http://raa.ruby-lang.org/list.rhtml?name=csv
And is bundled in ruby from 1.8...
It can parse <<__EOS__.chomp
a,b,",","""","\r\n","\r","\n"
__EOS__
Of cource it must have easy interface!
Any suggestion are welcome. How do you want to write
parsing code?
Regards,
// NaHi
PS. Current interface;
SYNOPSIS
1. reader = CSV.open( filename, "r" )
2. CSV.open( filename, "r" ) do | row |
...
end
3. writer = CSV.open( filename, "w" )
4. CSV.open( filename, "w" ) do | writer |
...
end
ARGS
filename: filename to open.
mode: "r" for read (parse)
"w" for write (generate)
row: an Array of cells which is a parsed line.
writer: Created writer instance. See CSV::Writer#<< and
CSV::Writer#addRow to know how to generate CSV string.
RETURNS
reader: Create reader instance. To get parse result, see
CSV::Reader#each.
writer: Created writer instance. See CSV::Writer#<< and
CSV::Writer#addRow to know how to generate CSV string.
DESCRIPTION
Open a CSV formatted file to read or write.
EXAMPLE 1
reader = CSV.open( "csvfile.csv", "r" )
row1 = reader.shift
row2 = reader.shift
if row2.empty?
p "row2 not find."
end
reader.close
EXAMPLE 2
CSV.open( "csvfile.csv", "r" ) do | row |
p row
end
EXAMPLE 3
writer = CSV.open( "csvfile.csv", "w" )
writer << [ "r1c1", "r1c2" ] << [ "r2c1", "r2c2" ] << [ nil, nil ]
writer.close
EXAMPLE 4
CSV.open( "csvfile.csv", "w" ) do | writer |
writer << [ "r1c1", "r1c2" ]
writer << [ "r2c1", "r2c2" ]
writer << [ nil, nil ]
end