1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/usr/local/bin/ruby -w
- # csv_table.rb
- #
- # Created by James Edward Gray II on 2006-11-04.
- # Copyright 2006 Gray Productions. All rights reserved.
- #
- # Feature implementation and example code by Ara.T.Howard.
- require "faster_csv"
- table = FCSV.parse(DATA, :headers => true, :header_converters => :symbol)
- # row access
- table[0].class # => FasterCSV::Row
- table[0].fields # => ["zaphod", "beeblebrox", "42"]
- # column access
- table[:first_name] # => ["zaphod", "ara"]
- # cell access
- table[1][0] # => "ara"
- table[1][:first_name] # => "ara"
- table[:first_name][1] # => "ara"
- # manipulation
- table << %w[james gray 30]
- table[-1].fields # => ["james", "gray", "30"]
- table[:type] = "name"
- table[:type] # => ["name", "name", "name"]
- table[:ssn] = %w[123-456-7890 098-765-4321]
- table[:ssn] # => ["123-456-7890", "098-765-4321", nil]
- # iteration
- table.each do |row|
- # ...
- end
- table.by_col!
- table.each do |col_name, col_values|
- # ...
- end
- # output
- puts table
- # >> first_name,last_name,age,type,ssn
- # >> zaphod,beeblebrox,42,name,123-456-7890
- # >> ara,howard,34,name,098-765-4321
- # >> james,gray,30,name,
- __END__
- first_name,last_name,age
- zaphod,beeblebrox,42
- ara,howard,34
|